どんな画面幅でも崩れない、フレキシブルな円の作りかたです。
完成形
まるです
HTML
<div class="circle_width"> <div class="circle_height"> <p>まるです</p> </div> </div>
1行目 横幅を制御するためのコンテナ
2行目 高さをつけるコンテナ
3行目 中に入れたい要素
CSS
.circle_width {
表示したい横幅を決める
width: 25%;
線をつける
border: 3px solid #333;
要素の角をなくす
50%でまんまるになる
border-radius: 50%;
}
.circle_height {
内包する要素の基準にする
position: relative;
paddingの%指定は親要素の横幅に依存する
padding-top: 100%にすることで親要素の横幅と同じ長さになる
親要素が正方形になる
padding-top: 100%;
要素自体の高さがあるとずれるので高さを0にする
height: 0;
}
.circle_height p {
要素のたかさをなくす
position: absolute;
正方形の幅-文字の高さ/2 で上下真ん中に要素がくる
top: calc((100% - 1em)/2);
要素伸ばす
left: 0;
right: 0;
pタグ初期値のmarginを無効に
margin: 0;
文字中央寄せ
text-align: center;
}


