border-image-sourceプロパティの説明
CSSのborder-image-source
プロパティは、要素の境界線として表示させる画像を指定します。ここで呼び出される画像は、結果的に境界線として表示されるまでに様々な加工を受けます。つまり、元の画像は境界線を構成するパターンの素材として扱われます。
境界線に画像を表示させるには、いくつかの事前準備が必用です。そのため、単純にborder-image-source
を指定しただけでは画像は表示されません。前提として、境界線が表示される専有幅を確保しておくためにborder-style
の値をnone
以外、border-width
の値を1px
以上にしておかなければなりません。
境界画像に関する値を一括で指定する場合は、ショートハンド・プロパティのborder-image
を使用します。境界線に画像が表示されるまでのプロセスは以下の通りです。
border-image-source
で画像を読み込むborder-image-slice
で画像を素材として扱えるように分割するborder-image-width
で分割された画像を表示する幅が決まるborder-image-outset
で境界線の縁からはみ出す距離が決まるborder-image-repeat
で画像の伸縮や並び方が決まる
border-image-sourceに指定できる値
none
- 画像を指定しない値です。これが初期値です。
<image>
- 画像を指定する値を指定します。URLによる参照、グラデーション、ウェブページの一部を切り出すなどの操作が行えます。
border-image-sourceの使い方とサンプルコード
border-image-source
プロパティの構文は以下の通りです。
/* キーワード値 */
border-image-source: none;
/* <image>値 */
border-image-source: url(image.png);
border-image-source: linear-gradient(cyan, magenta);
/* グローバル値 */
border-image-source: inherit;
border-image-source: initial;
border-image-source: revert;
border-image-source: unset;
border-image-sourceの実例
それでは実際にborder-image-source
プロパティの書き方を見ていきましょう。ここでは、30pxのひし形で構成された縦横90pxの画像を使います。
まず初めに、境界線に画像を表示させるために境界線の専有幅を確保します。以下の内容は、単純な<div>
要素にborder
プロパティで幅10pxの境界線を指定したものです。
この境界線に先ほどの画像を表示させてみましょう。border-image-source
に画像のURLを指定すると、自動的に境界線の範囲内に配置されます。
これで画像は表示されましたが、意図した表現でないことは明らかです。境界線の幅は10pxで、そこに90pxの画像が無理やり配置されています。四隅に画像がひとつだけ表示されているのは、他のプロパティの値が初期状態であるためです。
ここまでの内容が、border-image-source
の役割です。これ以降は、画像を素材とした配置パターンを編集していく作業になります。全体の流れを把握するには、先にborder-image
の解説を参照して下さい。各プロパティの値を指定することで以下のようなパターンを作り出すことができます。