CSS | 太陽(Sun)のCSSデザインサンプル
ピュアなCSSだけでポップな太陽を作成してみました。
サイトパーツなどで需要があれば、是非ご利用ください。
太陽(Sun)
CSSで作成した太陽の表示サンプルとサンプルコードです。
前回の雪だるまと顔がよく似ていますが、決して手を抜いた訳ではありません。
ただ、まった同じでコピペです。
CSS | 雪だるま(snowman)のCSSデザインサンプル | ONE NOTES
See the Pen CSS | Snowman by yochans (@yochans) on CodePen.
HTMLはコードのみやすさから多層な入れ子は使わずに配置しています。
追記:ウソです、太陽光で入れ子にしていました。
太陽本体は「.sun」で、このポジションを変更すれば全パーツの位置が移動するようになっています。
可愛くできたポイントとなっている口はテキストの「3」である事にだけ注意して下さい。
今回から「Arial」でフォント指定しています。
<div class="container">
<div class="sun">
<div class="body"></div>
<div class="left-eye"></div>
<div class="right-eye"></div>
<div class="mouse">3</div>
<div class="sunlight">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
</div>
「.sun」にて太陽本体の位置を調節できます。
疑似要素を除く全てのパーツに「transform: translate(-50%, -50%)」が指定してありますが、これは各パーツの基準点の縦横中央にするためのものです。
これによりtopとleftで指定した位置にパーツの中央が配置されます。
各パーツの表示深度(z-index)と補足事項です。
今作はHTMLの記述順が表示深度に影響しないのでz-indexは全てデフォルトとなっています。
パーツ | class | z-index | 補足 |
---|---|---|---|
体 | body | 1 | 少し横幅の方が広いです。 |
左目 | left-eye | 1 | 疑似要素でつぶら感を。 |
右目 | right-eye | 1 | 疑似要素でつぶら感を。 |
口 | mouse | 1 | テキスト、数字の3 |
太陽光、日差し | sunlight | 1 | 一番背面に配置、透過あり。 |
特に難しい事はしていませんので簡単にカスタマイズできると思います。
太陽光「.sunset」は中央に配置、描画部分は疑似要素にして離した場所に設置して元を回転さる事で本体の周りを一周させています。
この方法は以下の記事が参考になると思います。(テキストなので疑似要素は不要ですが。)
CSS | 円形に沿ったテキストを表示する方法 | ONE NOTES
.container {
width: 100%;
height: 260px;
background: #000;
}
.sun {
position: relative;
top: 0;
left: 50%;
width: 0;
height: 100%;
transform: scale(1);
}
.body {
position: absolute;
top: 130px;
width: 110px;
height: 110px;
background: #ffa500;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.left-eye {
position: absolute;
top: 120px;
left: -15px;
width: 12px;
height: 12px;
background: #000;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.left-eye::before {
content: "";
position: absolute;
top: 2px;
left: 2px;
width: 4px;
height: 4px;
background: #FFF;
border-radius: 50%;
}
.right-eye {
position: absolute;
top: 120px;
left: 18px;
width: 12px;
height: 12px;
background: #000;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.right-eye::before {
content: "";
position: absolute;
top: 2px;
left: 2px;
width: 4px;
height: 4px;
background: #FFF;
border-radius: 50%;
}
.mouse {
position: absolute;
top: 150px;
left: 5px;
font-family: "Arial";
font-size: 20px;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.sunlight div {
position: absolute;
top: 130px;
}
.sunlight div::before {
content: "";
position: absolute;
top: 0;
left: 65px;
width: 30px;
height: 15px;
background: #ffd700;
border-radius: 50%;
}
.sunlight div:nth-child(1) {
transform: rotate(0deg);
}
.sunlight div:nth-child(2) {
transform: rotate(30deg);
}
.sunlight div:nth-child(3) {
transform: rotate(60deg);
}
.sunlight div:nth-child(4) {
transform: rotate(90deg);
}
.sunlight div:nth-child(5) {
transform: rotate(120deg);
}
.sunlight div:nth-child(6) {
transform: rotate(150deg);
}
.sunlight div:nth-child(7) {
transform: rotate(180deg);
}
.sunlight div:nth-child(8) {
transform: rotate(210deg);
}
.sunlight div:nth-child(9) {
transform: rotate(240deg);
}
.sunlight div:nth-child(10) {
transform: rotate(270deg);
}
.sunlight div:nth-child(11) {
transform: rotate(300deg);
}
.sunlight div:nth-child(12) {
transform: rotate(330deg);
}
ディスカッション
コメント一覧
まだ、コメントがありません