[CSS]box-shadowを使って、三連リングのようなカワイイ囲いを作るテクニック

三連リングのようなカワイイ囲いをスタイルシートで実装するテクニックを紹介します。

左のSingleだと、divは一つだけ!

デモのキャプチャ

Ring CSS

しかもこのリング、アニメーションでうねうね動きます。

デモのアニメーション

左のSingleを例に、実装方法を紹介します。

HTML

div一つにclassを加えます。

<div class="hoja">SINGLE</div>

CSS

複数のリングは、box-shadowで作成します。アニメーションさせたくない場合は、keyframesは必要ありません。

※利用する際は、ベンダープレフィックスを加えてください。
参考:面倒なCSS3のベンダープレフィックスを自動で付与するスクリプト -Prefix free

.hoja {
  color: #dcdce2;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -180px;
  margin-top: -90px;
  width: 180px;
  height: 180px;
  text-align: center;
  font-family: 'Open Sans', sans-serif;
  font-size: 22.5px;
  line-height: 180px;
  -webkit-font-smoothing: antialiased;
}
.hoja:after,
.hoja:before {
  content: "";
  border-radius: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: center center;
}
.hoja:after {
  box-shadow: inset 0 11.25px 0 rgba(250, 250, 0, 0.8), inset 11.25px 0 0 rgba(250, 200, 0, 0.8), inset 0 -11.25px 0 rgba(250, 150, 0, 0.8), inset -11.25px 0 0 rgba(250, 100, 0, 0.8);
  animation: rotar 1.5s linear infinite;
}
.hoja:before {
  box-shadow: inset 0 11.25px 0 rgba(0, 250, 250, 0.8), inset 11.25px 0 0 rgba(0, 200, 200, 0.8), inset 0 -11.25px 0 rgba(0, 150, 200, 0.8), inset -11.25px 0 0 rgba(0, 200, 250, 0.8);
  animation: rotarIz 1.5s linear infinite;
}

@keyframes rotar {
  0% {
    transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
  }
  100% {
    transform: rotateZ(360deg) scaleX(1) scaleY(1);
  }
}
@keyframes rotarIz {
  0% {
    transform: rotateZ(0deg) scaleX(1) scaleY(1);
  }
  50% {
    transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
  }
  100% {
    transform: rotateZ(-360deg) scaleX(1) scaleY(1);
  }
}

実際の動作は、下記ページで楽しめます。
コードを編集することもできるので、色を変えたりすることもできます。

サイトのキャプチャ

Ring CSS

ダブルのデモもあります。

サイトのキャプチャ

Double Ring

sponsors

top of page

©2018 coliss