[CSS]box-shadowを使って、三連リングのようなカワイイ囲いを作るテクニック
Post on:2014年11月26日
sponsorsr
三連リングのようなカワイイ囲いをスタイルシートで実装するテクニックを紹介します。
左のSingleだと、divは一つだけ!

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

左の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);
}
}
実際の動作は、下記ページで楽しめます。
コードを編集することもできるので、色を変えたりすることもできます。

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

sponsors











