border-radiusはボックスの角を丸めるために使用するCSSプロパティです。border-top-left-radius、border-top-right-radius、border-bottom-left-radius、border-bottom-right-radiusについても解説します。
| 全角を丸める | border-radius |
|---|---|
| 左上の角 | border-top-left-radius |
| 右上の角 | border-top-right-radius |
| 左下の角 | border-bottom-left-radius |
| 右下の角 | border-bottom-right-radius |
border-radiusの基礎
.sampleクラスを持つ<div>要素を準備します。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
border-radiusに曲率半径を指定すると角が丸まります。 以下は、30px、20px、10pxの例。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 30px; }
30px<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 20px; }
20px<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10px; }
10px零(0)を指定すると丸みが無くなります。(デフォルト値)
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 0; }
0複数の設定値
それぞれの角で異なる設定にするには、複数の値を指定します。
| 設定値の数 | 1つ目 | 2つ目 | 3つ目 | 4つ目 |
|---|---|---|---|---|
| 1つ | 全ての角 | |||
| 2つ | 左上と右下 | 右上と左下 | ||
| 3つ | 左上 | 右上と左下 | 右下 | |
| 4つ | 左上 | 右上 | 右下 | 左下 |
複数の設定値の例。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10px 20px; }
10px 20px<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10px 20px 30px; }
10px 20px 30px<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10px 20px 30px 40px; }
10px 20px 30px 40pxborder-top-left-radius
border-top-left-radiusは左上のborder-radiusを指定します。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-top-left-radius: 20px; }
border-top-left-radiusborder-top-right-radius
border-top-right-radiusは右上のborder-radiusを指定します。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-top-right-radius: 20px; }
border-top-right-radiusborder-bottom-left-radius
border-bottom-left-radiusは左下のborder-radiusを指定します。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-bottom-left-radius: 20px; }
border-bottom-left-radiusborder-bottom-right-radius
border-bottom-right-radiusは右下のborder-radiusを指定します。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-bottom-right-radius: 20px; }
border-bottom-right-radius%で指定する方法
曲率半径を直径の%で指定することができます。以下は10%、30%、50%の例です。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10%; }
10%<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 30%; }
30%<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 50%; }
50%50%;にすると楕円になることが分かります。
それぞれの角で異なる設定にするには、複数の値を指定することもできます。
| 設定値の数 | 1つ目 | 2つ目 | 3つ目 | 4つ目 |
|---|---|---|---|---|
| 1つ | 全ての角 | |||
| 2つ | 左上と右下 | 右上と左下 | ||
| 3つ | 左上 | 右上と左下 | 右下 | |
| 4つ | 左上 | 右上 | 右下 | 左下 |
複数の設定値の例。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10% 20%; }
10% 20%<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10% 20% 30%; }
10% 20% 30%<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10% 20% 30% 40%; }
10% 20% 30% 40%応用
扇形
border-○-○-radiusを使って特定の角だけを100%にすると、扇形なります。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-top-left-radius: 100%; }
border-top-left-radius<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-top-right-radius: 100%; }
border-top-right-radius<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-bottom-left-radius: 100%; }
border-bottom-left-radius<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-bottom-right-radius: 100%; }
border-bottom-right-radius横軸と縦軸で異なる曲率半径
横軸方向と縦軸方向で異なる曲率半径を指定することもできます。 設定は(横軸方向)/(縦軸方向)と書きます。 以下は40px / 10pxと10px / 40pxの例です。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 40px / 10px; }
40px / 10px<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 10px / 40px; }
10px / 40px複数の設定値を指定することもできます。以下は2つの設定値を指定した例です。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-radius: 0 10px/40px; }
0 10px/40pxborder-〇-〇-radiusに対してborder-top-left-radiusなどに対しても 横軸と縦軸で異なる曲率半径を指定できます。 その場合は 1つ目の設定値が横軸方向、2つ目の設定値が縦軸方向になります。
<div class="sample">sample</div>
.sample { background-color: #cec; /* 背景 */ border: 5px solid #393; /* 境界線 */ display: inline-block; /* インライン・ブロック要素 */ padding: 20px; /* 内側の余白 */ }
.sample { border-top-left-radius: 10px 40px; }
border-top-left-radius: 10px 40px