枠線
border-radius
要素の境界を角丸にする
value | description |
---|---|
4px | 角丸の半径をpx で指定する |
25% 10% | 左上と右下の半径、右上と左下の半径を個別に指定する |
10% 30% 50% 70% | 角丸の半径を個別に指定する |
9999px | 角丸を最大にする |
Demo
A
B
C
D
<div class="wrapper">
<div class="card card-1">
A
</div>
<div class="card card-2">
B
</div>
<div class="card card-3">
C
</div>
<div class="card card-4">
D
</div>
</div>
.card-1 {
border-radius: 4px;
}
.card-2 {
border-radius: 50%;
}
.card-3 {
border-radius: 9999px;
}
.card-4 {
border-radius: 10% 30% 40% 70%;
}
.card {
width: 100%;
aspect-ratio: 16 / 9;
background: rgb(56, 189, 248);
}
.wrapper {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12px;
}
概要
通常、要素の境界は長方形に設定されています。border-radius
を利用することで、この境界を角丸にすることができます。
プロパティ名にborder
とついていますが、border
ではなく要素自体の形を変更します。例えば背景色を指定した要素にborder-radius
を適用した場合、背景色も角丸に切り取られます。
9999px
のテクニック
border-radius
にとても大きな数字を指定するテクニックが存在します。Demo の C パターンのように角丸長方形を実現でき、ボタンなどに多用されます。
本来999px
や9999px
のような関係のない数値を指定するのは避けるべきとされますが(コードから意図が読み取りづらいため)、border-radius
の場合は有名なテクニックですので許容範囲内だと考えています。
なお50%
を指定した場合、正方形の場合は正常に動作しますが、長方形の場合は Demo の B パターンのように楕円になってしまいます。
さらにいびつな形を実現する
実はborder-radius
には最大 8 つの値を指定することができます。
.box {
border-radius: 70% 30% 30% 70% / 60% 40% 60% 40%;
}
詳細は割愛しますが、以下のようないびつな形を作り出すことができます。
なお、このような形を人力で調整するのは至難の業であるため、コードジェネレータが複数公開されています。 興味のある方は「CSS border-radius generator」などで調べてみてください。 (FANCY-BORDER-RADIUSはその一つです)