【保存版】CSSで境界線をオシャレに!「line-style」プロパティの活用術


line-style プロパティは、CSS の border プロパティと組み合わせて使用することで、要素の境界線のスタイルを詳細に制御することができます。 単に点線や破線などの基本的なスタイルを設定するだけでなく、より複雑な装飾的な境界線を作成することも可能です。

文法

border-style: none | dotted | dashed | solid | double | groove | 
ridge | inset | outset | initial | inherit;

  • inherit:親要素のスタイルを継承します。
  • initial:ブラウザの初期設定に戻します。
  • outset:外側に影付きの境界線を表示します。
  • inset:内側に影付きの境界線を表示します。
  • ridge:盛り上がった線のような境界線を表示します。
  • groove:凹んだ溝のような境界線を表示します。
  • double:二重線を表示します。
  • solid:実線を表示します。(既定値)
  • dashed:破線を表示します。
  • dotted:点線を表示します。
  • none:境界線を非表示にします。

詳細

line-style プロパティは、要素の境界線の4辺すべてにスタイルを適用します。 個別にスタイルを設定したい場合は、border-top-styleborder-right-styleborder-bottom-styleborder-left-style プロパティを使用します。

border-top-style: solid; /* 上辺のみ実線 */
border-right-style: dashed; /* 右辺のみ破線 */
border-bottom-style: dotted; /* 下辺のみ点線 */
border-left-style: none; /* 左辺のみ非表示 */

また、line-style プロパティは、SVG ストロークのスタイルにも適用できます。

次の例では、ボタンに装飾的な境界線を作成します。

button {
  border: 5px solid #000;
  border-top-style: double;
  border-bottom-style: none;
}

この結果、ボタンには太い黒い実線で縁取りされ、上部には二重線が、下部には境界線がなくなります。



この例では、波のような形状の境界線を作成します。

.wavy {
  border: 5px solid #007bff;
  border-top-style: wave;
}

例 2:斜め線

この例では、要素を斜めに区切る境界線を作成します。

.diagonal {
  border: 5px solid #dc3545;
  border-right-style: slanted;
}

例 3:点線と破線の組み合わせ

この例では、点線と破線を交互に表示する境界線を作成します。

.dashed-dotted {
  border: 5px dashed #4caf50;
  border-width: 2px; /* 線幅を調整 */
}

例 4:影付き境界線

この例では、内側に影が付いた境界線を作成します。

.inset-shadow {
  border: 5px inset #6c757d;
}

例 5:SVG ストローク

この例では、SVG ストロークに line-style プロパティを適用します。

<svg width="100" height="100">
  <path d="M 10,20 L 80,20" stroke="#000" stroke-width="5" stroke-style="dashed" />
</svg>

これらの例はほんの一例です。 line-style プロパティを使用して、さまざまなバリエーションの装飾的な境界線を作成することができます。

上記以外にも、以下の点に注意してコードを作成してみてください。

  • フォールバック: 古いブラウザでは line-style プロパティがサポートされない場合があります。 互換性を確保するために、代替のスタイルを指定するフォールバックメカニズムを検討してください。
  • ベンダープレフィックス: すべてのブラウザで互換性を確保するために、ベンダープレフィックスを指定する必要がある場合があります。 例: -webkit-border-style-moz-border-style など。


代替方法

  1. border-image プロパティ: 画像を使用して境界線を装飾することができます。 柔軟性が高く、複雑なデザインにも対応できますが、画像ファイルの読み込みが必要となるため、パフォーマンスに影響を与える可能性があります。
border-image: url('border.png') 1 repeat stretch;
  1. 擬似要素: ::before::after 擬似要素を使用して、境界線に似た効果を作成することができます。 柔軟性が高く、様々なデザインに対応できますが、line-style プロパティほど簡単ではありません。
.element::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background-color: #000;
}
  1. SVG: SVGを使用して、境界線を完全にカスタマイズすることができます。 高度な柔軟性とコントロールを提供しますが、複雑なデザインの場合は難易度が高くなります。
<svg width="100" height="100">
  <path d="M 10,20 L 80,20" stroke="#000" stroke-width="5" fill="none" />
</svg>
  1. ライブラリ: BorderRadiusCSS Border Styles などのライブラリを使用して、簡単に装飾的な境界線を作成することができます。 使いやすいですが、カスタマイズ性は制限されます。
  • ブラウザサポート: 古いブラウザとの互換性を考慮する場合は、フォールバックメカニズムを実装する必要があります。
  • パフォーマンス: 画像を使用する場合は、パフォーマンスへの影響を考慮する必要があります。
  • 柔軟性: 擬似要素やライブラリを使用して、より柔軟な境界線を作成することができます。
  • 装飾: 画像やSVGを使用して、より装飾的な境界線を作成することができます。
  • シンプル: シンプルな境界線の場合は、border-style プロパティが最も簡単で効率的な方法です。