--- title: border-image slug: Web/CSS/border-image tags: - CSS - CSS プロパティ - CSS 背景と境界 - Reference - border-image - border-image-slice - border-image-source translation_of: Web/CSS/border-image ---
border-image
は CSS のプロパティで、指定された要素の周りに画像を描きます。これは要素の通常の境界を置き換えます。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
このプロパティは {{cssxref("border-image-source")}}, {{cssxref("border-image-slice")}}, {{cssxref("border-image-width")}}, {{cssxref("border-image-outset")}}, {{cssxref("border-image-repeat")}} の 一括指定プロパティです。他の一括指定プロパティと同様、省略された値には初期値が設定されます。
メモ: 境界画像の読み込みに失敗したときのために、 {{cssxref("border-style")}} を指定してください。実際、仕様書によればこれが必須になっていますが、すべてのブラウザーがこの要件を実装しているわけではありません。
/* source | slice */ border-image: linear-gradient(red, blue) 27; /* source | slice | repeat */ border-image: url("/images/border.png") 27 space; /* source | slice | width */ border-image: linear-gradient(red, blue) 27 / 35px; /* source | slice | width | outset | repeat */ border-image: url("/images/border.png") 27 23 / 50px 30px / 1rem round space;
border-image
プロパティは以下に挙げられた1つから5つの値で指定することができます。
メモ: {{cssxref("border-image-source")}} の 計算値 が none
になったり、画像が表示できなかったりした場合は、 {{cssxref("border-style")}} が代わりに表示されます。
<'border-image-source'>
<'border-image-slice'>
<'border-image-width'>
<'border-image-outset'>
<'border-image-repeat'>
この例では、要素の境界にダイヤモンド模様を適用します。 source の画像は、縦と横にダイヤモンドが3つずつ並んだ81×81ピクセルの ".png" ファイルです。
<div id="bitmap">この要素はビットマップベースの境界画像に囲まれています。</div>
個々のダイヤモンドの大きさに一致するように、3で割れる81の値を使用するか、角と辺の領域を分割するための 27
を使用します。境界画像が要素の背景の辺の中央になるように、 outset の値を幅の半分にします。最後に、 round
に repeat の値を設定して、境界線の断片が等分に合うように、つまり、クリッピングをしたり隙間ができたりしないようにします。
#bitmap { width: 200px; background-color: #ffa; border: 36px solid orange; margin: 30px; padding: 10px; border-image: url("https://mdn.mozillademos.org/files/4127/border.png") /* source */ 27 / /* slice */ 36px 28px 18px 8px / /* width */ 18px 14px 9px 4px /* outset */ round; /* repeat */ }
{{EmbedLiveSample('Bitmap', '100%', 200)}}
<div id="gradient">この要素はグラデーションの境界に囲まれています。</div>
#gradient { width: 200px; border: 30px solid; border-image: repeating-linear-gradient(45deg, #f33, #3bf, #f33 30px) 60; padding: 20px; }
{{EmbedLiveSample('Gradient')}}
支援技術は境界画像を解釈することができません。画像にページ全体の目的を理解するために重要な情報が含まれている場合は、文書内に意味的に記述したほうがいいでしょう。
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('CSS3 Backgrounds', '#the-border-image', 'border-image')}} | {{Spec2('CSS3 Backgrounds')}} | 初回定義 |
{{cssinfo}}
{{Compat("css.properties.border-image")}}