サイズ可変の正方形や正円をCSSで描画したい
CSSで正方形や正円を描くのは簡単ですが、レスポンシブデザインが主流になっていることもあり、サイズを可変にしたいなーってことが結構よくあります。
そんなときはpadding-topを使います。
padding-top: 100%;
この指定で、なぜか(?)外側要素の横幅100%分のpadding-topが取れます。
<div class="square"> <div class="square-in"></div> </div>
.square{ width: 300px; /* これを%指定などで可変にする。またはJavaScriptで値を変化させる。 */ } .square-in{ width: 100%; padding-top: 100%; background-color: #e88; }
サイズ可変の正円も同じ要領です。
<div class="circle"> <div class="circle-in"></div> </div>
.circle{ width: 300px; /* これを%指定などで可変にする。またはJavaScriptで値を変化させる。 */ } .circle-in{ width: 100%; padding-top: 100%; border-radius: 50%; background-color: #e88; }
簡単ですね。
知っているか知らないか程度のちょっとしたテクニックですが、知っていると少しだけデザインの幅が広がるかなーって思います。