Cascading Style Sheets border-radius property.
border-radius プロパティは、ボックスの4つのコーナーの角丸をまとめて指定する際に使用します。 それぞれの角丸コーナーは4分の1楕円になりますが、楕円の形状は、下図のように水平方向と垂直方向の2つの半径の組み合わせで決定されます。
border-radius プロパティで角丸を指定する際には、それぞれのコーナーの楕円の形状を水平方向と垂直方向の半径のセットで表します。 指定するのは、ボーダーの外側の輪郭です。
水平方向と垂直方向の半径のセットは、スラッシュ( / )で区切ります。 スラッシュの前後に水平方向と垂直方向の半径の値を、左上・右上・右下・左下の順で指定します。
スラッシュ以降を省略した場合には、水平垂直ともに同じ値として解釈されます。 また、それぞれのコーナーの値は省略することができますが、その場合には以下のルールに基づいて解釈されます。
楕円半径の値は、長さかパーセンテージで指定します。長さで指定する場合には、px・em・ptなどの単位を使用できます。 また、パーセンテージで指定する場合には、ボーダーボックスの幅と高さに対する楕円半径のパーセンテージを指定します。 指定する値が0の場合、コーナーの形状は四角になります。
尚、border-top-left-radius(左上)・ border-top-right-radius(右上)・ border-bottom-left-radius(左下)・ border-bottom-right-radius(右下)を使用すると、それぞれのコーナーの角丸を個別に指定することができます。
border-radiusを使って円を作ることが出来ます。円はちょっとした装飾などでよく使います。
正円にするには 縦幅の height と横幅の width を同じ値にして border-radius:50%; を指定します。
ちなみに 50%以上の数値の場合、同じ結果となります。
HTML source
<div class="circle"></div>
CSS source
.circle {
width: 50px;
height: 50px;
border-radius: 50%;
background: steelblue;
}
上記の例では background-color を指定していますが、画像を指定すると正円で切り抜かれた画像になります。SNSのプロフィールアイコンのような感じが作れます。
HTML source
<div class="circle4"></div>
CSS source
.circle4 {
width: 200px;
height: 200px;
border-radius: 50%;
background-image: url(programming_woman.jpg);
background-size: auto 100%;
background-repeat: no-repeat;
background-position: center;
}
Base image
HTML source
<div class="circle5"></div>
CSS source
.circle5 {
width: 200px;
height: 200px;
background-image: url(programming_woman.jpg);
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
楕円は、上記の正円の横幅 width を違うサイズの 200px にしただけです。
HTML source
<div class="circle2"></div>
CSS source
.circle2 {
width: 200px;
height: 50px;
border-radius: 50%;
background: steelblue;
}
両端を円にするには border-radius を px などの絶対指定にします。
上記の楕円の 縦幅 height:50px; の半分の 25px を border-radius で指定しています。数値はいくら大きくてもいいので、とりあえず 1000px 等と指定しても問題ありません。
HTML source
<div class="circle3"></div>
CSS source
.circle3 {
width: 200px;
height: 50px;
border-radius: 25px;
background: steelblue;
}
半径の値はいくら大きくてもいいと書きましたが、Firefoxでは 17895697px を超えるとエラーになることもなく角丸にならないようです。
(参考:Firefoxだけborder-radiusがなぜか効かないcssコード)
この事からも、極端すぎる数値は使わない方がいいかもしれません。また、複数のブラウザでの表示確認も大事なようです。