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