CSSの「Miscellaneous」における「border-bottom-left-radius」の解説


このプロパティの値は以下の通りです。

  • キーワード
    以下のキーワードを使用できます。
    • initial
      初期値にリセットします。
    • inherit
      親要素の値を継承します。
    • unset
      プロパティを無効化します。
  • 百分率値
    親要素の幅に対する割合で指定できます。この場合、左下の角が親要素の幅に対して指定された割合で丸められます。
  • 長さの値
    ピクセル、em、remなどの長さの単位で指定できます。この場合、左下の角が円弧状に丸められます。円の半径はこの値と同じになります。

「border-bottom-left-radius」と他のボーダー角丸めプロパティとの違い

  • border-bottom-right-radius
    要素の右下の角を丸めます。
  • border-top-right-radius
    要素の右上の角を丸めます。
  • border-top-left-radius
    要素の左上の角を丸めます。
  • border-radius
    要素のすべての角を同じ半径で丸めます。

「border-bottom-left-radius」の使用例

#element {
  border: 5px solid #000;
  border-bottom-left-radius: 20px;
}

この例では、要素 #element の境界線は太さ5ピクセルの黒色で、左下の角は半径20ピクセルの円弧状に丸められます。

  • 角の丸め具合は、要素の幅や高さによって影響を受けます。
  • ブラウザによっては、古いバージョンではこのプロパティに対応していない場合があります。
  • 角の丸め具合を微調整したい場合は、長さの値百分率値を組み合わせて使用することができます。
  • 要素のすべての角を同じ半径で丸めたい場合は、「border-radius」 プロパティを使用する方が簡潔です。


基本的な例

#element {
  width: 200px;
  height: 100px;
  border: 5px solid #000;
  border-bottom-left-radius: 10px;
}

この例では、以下のようになります。

  • 要素の左下の角は、半径10ピクセルの円弧状に丸められます。
  • 要素には、太さ5ピクセルの黒色の境界線が描かれます。
  • 要素 #element は、幅200ピクセル、高さ100ピクセルの長方形になります。

長さの値と百分率値の組み合わせ

#element {
  width: 200px;
  height: 100px;
  border: 5px solid #000;
  border-radius: 10px 20%;
}
  • 要素のすべての角が丸められます。
    • 左上と右上の角は、半径10ピクセルの円弧状に丸められます。
    • 右下と左下の角は、親要素の幅の20%の半径で丸められます。
  • 要素には、太さ5ピクセルの黒色の境界線が描かれます。
  • 要素 #element は、幅200ピクセル、高さ100ピクセルの長方形になります。

複数の要素への適用

.rounded-box {
  border: 5px solid #000;
  border-radius: 10px;
}

#element1, #element2 {
  width: 200px;
  height: 100px;
  background-color: #ccc;
  margin: 10px;
}

#element1 {
  /* 左下のみ丸める */
  border-bottom-left-radius: 0;
}

#element2 {
  /* 右下のみ丸める */
  border-bottom-right-radius: 0;
}
  • 要素 #element2 は、右下の角のみ丸められます。
  • 要素 #element1 は、左下の角のみ丸められます。
  • 要素 #element1#element2 は、クラス rounded-box の装飾を継承します。
  • クラス rounded-box に属するすべての要素は、太さ5ピクセルの黒色の境界線と、すべての角が半径10ピクセルの円弧状に丸められた装飾が適用されます。
#element1 {
  width: 200px;
  height: 100px;
  border: 5px solid #000;
  border-radius: 20px 10px 5px 0;
}

#element2 {
  width: 200px;
  height: 100px;
  border: 5px solid #000;
  border-radius: 50%;
}
  • 要素 #element2 は、すべての角が半径50ピクセルの円弧で丸められ、円形になります。
  • 要素 #element1 は、以下の角の丸めが適用されます。
    • 左上: 半径20ピクセルの円弧
    • 右上: 半径10ピクセルの円弧
    • 右下: 半径5ピクセルの円弧
    • 左下: 角が丸められない


「border-radius」プロパティの使用

説明

「border-radius」プロパティは、要素のすべての角を同じ半径で丸めます。つまり、「border-bottom-left-radius」プロパティで左下の角のみを丸める場合、「border-radius」プロパティで他の3つの角も同じ半径で丸めてしまうことになります。

利点

  • すべての角を同じように丸めたい場合に適している
  • コードが簡潔になる

欠点

  • 微調整が難しい
  • 左下の角のみを丸めたい場合は、他の角も丸めてしまう


#element {
  width: 200px;
  height: 100px;
  border: 5px solid #000;
  border-radius: 10px; /* すべての角が半径10ピクセルの円弧状に丸められる */
}

疑似要素と「border-radius」プロパティの使用

説明

この方法は、要素の擬似要素を使用して、左下の角のみを丸めます。具体的には、:before または :after 擬似要素を要素に追加し、その擬似要素に「border-radius」プロパティを設定します。この擬似要素は、元の要素の上に重ねて表示されるため、左下の角のみを丸めることができます。

利点

  • 微調整がしやすい
  • 他の角に影響を与えずに、左下の角のみを丸めることができる

欠点

  • 疑似要素のサイズと位置を調整する必要がある
  • コードが少し複雑になる


#element {
  width: 200px;
  height: 100px;
  border: 5px solid #000;
  position: relative; /* 擬似要素を相対位置に配置するために必要 */
}

#element:before {
  content: '';
  width: 50px; /* 擬似要素の幅 */
  height: 50px; /* 擬似要素の高さ */
  position: absolute; /* 擬似要素を絶対位置に配置 */
  bottom: 0; /* 擬似要素を要素の下部に配置 */
  left: 0; /* 擬似要素を要素の左側に配置 */
  border: 5px solid #000;
  border-radius: 50%; /* 左下の角を半径50ピクセルの円弧状に丸める */
}

SVGの使用

説明

この方法は、SVG画像を使用して、左下の角が丸められた形状を作成します。SVG画像はベクター画像なので、サイズを変更しても画質が劣化しません。また、CSSを使用してSVG画像の位置とサイズを調整することができます。

利点

  • 複雑な形状を作成できる
  • ベクター画像なので、サイズ変更による画質劣化がない

欠点

  • SVG画像を作成する必要がある
  • コードが複雑になる


<svg width="200" height="100">
  <rect width="200" height="100" rx="10" ry="0" fill="#ccc" stroke="#000" stroke-width="5" />
</svg>

背景画像の使用

説明

この方法は、左下の角が丸められた画像を背景画像として使用します。画像をCSSを使用して要素に設定することで、左下の角のみを丸めることができます。

利点

  • 画像を使用してデザインを装飾できる
  • コードが比較的簡単

欠点

  • 画像のサイズが大きすぎると、ページの読み込み速度が遅くなる
  • 画像ファイルが必要


#element {
  width: 200px;
  height: 100px;
  background-image: url('rounded-corner.png'); /* 左下の角が丸められた画像 */
  background-repeat: no-repeat;
}

どの代替方法を選択するべきか

どの代替方法を選択するかは、状況によって異なります。以下の点を考慮して、最適な方法を選択してください。

  • パフォーマンス
  • コードの簡潔さ
  • デザインの複雑さ