Home

border-radius | 角を丸める

border-radiusはボックスの角を丸めるために使用するCSSプロパティです。border-top-left-radiusborder-top-right-radiusborder-bottom-left-radiusborder-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>要素を準備します。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
実行結果初期状態
sample

border-radiusに曲率半径を指定すると角が丸まります。 以下は、30px20px10pxの例。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 30px;
}
実行結果30px
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 20px;
}
実行結果20px
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10px;
}
実行結果10px
sample

零(0)を指定すると丸みが無くなります。(デフォルト値)

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 0;
}
実行結果0
sample

複数の設定値

それぞれの角で異なる設定にするには、複数の値を指定します。

border-radiusプロパティ
設定値の数1つ目2つ目3つ目4つ目
1つ全ての角
2つ左上と右下右上と左下
3つ左上右上と左下右下
4つ左上右上右下左下

複数の設定値の例。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10px 20px;
}
実行結果10px 20px
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10px 20px 30px;
}
実行結果10px 20px 30px
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10px 20px 30px 40px;
}
実行結果10px 20px 30px 40px
sample

border-top-left-radius

border-top-left-radius左上border-radiusを指定します。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-top-left-radius: 20px;
}
実行結果border-top-left-radius
sample

border-top-right-radius

border-top-right-radius右上border-radiusを指定します。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-top-right-radius: 20px;
}
実行結果border-top-right-radius
sample

border-bottom-left-radius

border-bottom-left-radius左下border-radiusを指定します。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-bottom-left-radius: 20px;
}
実行結果border-bottom-left-radius
sample

border-bottom-right-radius

border-bottom-right-radius右下border-radiusを指定します。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-bottom-right-radius: 20px;
}
実行結果border-bottom-right-radius
sample

%で指定する方法

曲率(きょくりつ)半径を直径の%で指定することができます。以下は10%30%50%の例です。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10%;
}
実行結果10%
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 30%;
}
実行結果30%
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 50%;
}
実行結果50%
sample

50%;にすると楕円(だえん)になることが分かります。

複数の設定値

それぞれの角で異なる設定にするには、複数の値を指定することもできます。

border-radiusプロパティ
設定値の数1つ目2つ目3つ目4つ目
1つ全ての角
2つ左上と右下右上と左下
3つ左上右上と左下右下
4つ左上右上右下左下

複数の設定値の例。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10% 20%;
}
実行結果10% 20%
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10% 20% 30%;
}
実行結果10% 20% 30%
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10% 20% 30% 40%;
}
実行結果10% 20% 30% 40%
sample

応用

扇形

border-○-○-radiusを使って特定の角だけを100%にすると、扇形なります。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-top-left-radius: 100%;
}
実行結果border-top-left-radius
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-top-right-radius: 100%;
}
実行結果border-top-right-radius
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-bottom-left-radius: 100%;
}
実行結果border-bottom-left-radius
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-bottom-right-radius: 100%;
}
実行結果border-bottom-right-radius
sample

横軸と縦軸で異なる曲率半径

横軸方向と縦軸方向で異なる曲率半径を指定することもできます。 設定は(横軸方向)/(縦軸方向)と書きます。 以下は40px / 10px10px / 40pxの例です。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 40px / 10px;
}
実行結果40px / 10px
sample
HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 10px / 40px;
}
実行結果10px / 40px
sample
複数の設定値

複数の設定値を指定することもできます。以下は2つの設定値を指定した例です。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-radius: 0 10px/40px;
}
実行結果0 10px/40px
sample
border-〇-〇-radiusに対して

border-top-left-radiusなどに対しても 横軸と縦軸で異なる曲率半径を指定できます。 その場合は 1つ目の設定値が横軸方向、2つ目の設定値が縦軸方向になります。

HTML
<div class="sample">sample</div>
CSS
.sample {
background-color: #cec; /* 背景 */
border: 5px solid #393; /* 境界線 */
display: inline-block; /* インライン・ブロック要素 */
padding: 20px; /* 内側の余白 */
}
CSS
.sample {
border-top-left-radius: 10px 40px;
}
実行結果border-top-left-radius: 10px 40px
sample