CSSのborder-image-sliceで画像のどの部分を枠線として使用するかを指定し、デザインをカスタマイズする方法をわかりやすく解説

スポンサーリンク

CSSのborder-image-sliceプロパティは、画像を枠線として使用する際に、どの部分を切り取って枠線に適用するかを指定します。画像を枠線として使用する場合、border-image-sliceの値によって画像の一部を選択し、枠線として使います。

スポンサーリンク

border-image-sliceプロパティの値とその効果の一覧

  • border-image-slice: 30; – 画像を30%切り取り、枠線に適用します。
  • border-image-slice: 50; – 画像を50%切り取り、枠線に適用します。
  • border-image-slice: 30 fill; – 30%を切り取り、さらに中央部分にも画像を表示します。

注意点や関連情報

border-image-sliceプロパティは、border-imageを使用する際に、画像のどの部分を枠線として使用するかを制御します。値にはピクセルやパーセントを指定することができ、画像の切り取り範囲を決定します。fillオプションを使用することで、枠線だけでなく、要素の中央にも画像を表示することができます。

border-image-sliceが効かない理由として考えられること

border-image-sourceが設定されていない

border-image-sliceは、ボーダーとして使用する画像をスライス(分割)するためのプロパティですが、border-image-sourceが設定されていない場合、このプロパティは機能しません。
対策border-image-sourceに有効な画像を設定し、ボーダーとして画像が表示されていることを確認します。

border-styleが設定されていない

border-image-sliceは、border-styleが設定されていないと機能しません。border-stylenoneに設定されている場合、ボーダーが表示されず、このプロパティも効果を発揮しません。
対策border-stylesoliddasheddottedなど、適切なスタイルに設定します。

共通するCSSコード

.css-sample-container {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 300px;
      height: 200px;
      background-color: #f9f9f9;
      padding: 20px;
      margin: 20px auto;
      text-align: center;
    }

    .css-sample-item {
      width: 200px;
      padding: 10px;
      background-color: #cce7ff;
    }
  

border-image-slice: 30;

画像を30%切り取って枠線として使用します。

HTMLコード

<div class="css-sample-container css-sample-border-slice-30">
      <div class="css-sample-item">Slice 30%</div>
    </div>
  

CSSコード

.css-sample-border-slice-30 {
      border: 10px solid transparent;
      border-image: url("https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg") 30;
    }
  

表示結果

Slice 30%

border-image-slice: 50;

画像を50%切り取って枠線として使用します。画像の大部分を切り取って表示します。

HTMLコード

<div class="css-sample-container css-sample-border-slice-50">
      <div class="css-sample-item">Slice 50%</div>
    </div>
  

CSSコード

.css-sample-border-slice-50 {
      border: 10px solid transparent;
      border-image: url("https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg") 50;
    }
  

表示結果

Slice 50%

border-image-slice: 30 fill;

画像を30%切り取って枠線として使用し、中央部分にも画像を表示します。

HTMLコード

<div class="css-sample-container css-sample-border-slice-fill">
      <div class="css-sample-item">Slice 30% Fill</div>
    </div>
  

CSSコード

.css-sample-border-slice-fill {
      border: 10px solid transparent;
      border-image: url("https://programming-cafe.com/wp-content/uploads/colorphoto02.jpg") 30 fill;
    }
  

表示結果

Slice 30% Fill

まとめ

  • border-image-sliceプロパティは、画像を枠線として使用する際に、どの部分を切り取るかを指定します。
  • 画像の切り取り範囲はパーセントやピクセルで指定でき、デザインに応じて調整が必要です。
  • fillオプションを使用することで、中央部分にも画像を適用できます。