CSS プロパティ background-clip

CSS プロパティ background-clip: 背景表示範囲のコントロール

CSS プロパティ background-clip: 背景表示範囲のコントロール

background-clip プロパティは、要素の背景(背景画像または背景色)を描画する範囲を定義するために使用されます。

目次

構文


background-clip: border-box | padding-box | content-box | text;

border-box

背景は、境界線の外側の縁まで描画されます。これがデフォルト値です。

padding-box

背景は、パディングの外側の縁(つまり、境界線の内側の縁)まで描画されます。

content-box

背景は、コンテンツエリアの縁まで描画されます。

text

背景は、テキストの形状とグリフの内部にのみ適用されます。(注意: この値は、現在、ブラウザのサポートが低い状態です)

互換性

background-clip プロパティは、すべての主要なブラウザで良好にサポートされていますが、text 値は例外で、現在、サポートしているブラウザは少数です。

Chrome Firefox Safari Edge Opera
border-box 1.0+ 1.0+ 3.1+ 12+ 9.5+
padding-box 1.0+ 1.0+ 3.1+ 12+ 9.5+
content-box 1.0+ 1.0+ 3.1+ 12+ 9.5+
text 31+ 3.6+ -webkit- only 79+ 15+

出典: Can I use... Support tables for HTML5, CSS3, etc

使用例

以下は、background-clip プロパティを使用する例です。

例 1:background-clip: border-box (デフォルト値)


<div class="example-1">
  <p>背景色が境界線まで適用されます。</p>
</div>

.example-1 {
  background-color: lightblue;
  border: 10px solid black;
  padding: 20px;
  background-clip: border-box;
}

この例では、背景色は境界線を含む要素全体の範囲に適用されます。

例 2:background-clip: padding-box


<div class="example-2">
  <p>背景色がパディングまで適用されます。</p>
</div>

.example-2 {
  background-color: lightblue;
  border: 10px solid black;
  padding: 20px;
  background-clip: padding-box;
}

この例では、背景色はパディングの範囲まで適用され、境界線は背景色で塗りつぶされません。

例 3:background-clip: content-box


<div class="example-3">
  <p>背景色がコンテンツエリアまで適用されます。</p>
</div>

.example-3 {
  background-color: lightblue;
  border: 10px solid black;
  padding: 20px;
  background-clip: content-box;
}

この例では、背景色はコンテンツエリアの範囲までに適用され、パディングや境界線は背景色で塗りつぶされません。

例 4:background-clip: text


<div class="example-4">
  <p>テキストの背景が塗りつぶされます。</p>
</div>

.example-4 {
  background-color: lightblue;
  background-clip: text;
  -webkit-background-clip: text; /* Safari のサポート */
  color: transparent; /* テキストの色を透明にする */
}

この例では、背景色はテキストのグリフの内部にのみ適用されます。ただし、この値は、現在、すべてのブラウザでサポートされているわけではありません。

注意事項

  • background-clip プロパティは、背景画像または背景色に対してのみ有効で、他の背景プロパティ(background-attachmentbackground-originbackground-repeatbackground-size など)に対しては無効です。
  • background-clip: text を使用する場合は、ブラウザの互換性に特に注意する必要があります。

よくある質問

  • Q: background-clipbackground-origin の違いは何ですか?
    A: background-origin プロパティは、背景画像の配置起点となる位置を指定します。一方、background-clip プロパティは、背景画像または背景色が描画される範囲を指定します。
  • Q: background-clip: text が機能しません。どうすればよいですか?
    A: まず、ブラウザが background-clip: text をサポートしていることを確認してください。サポートしていない場合は、代替手段を検討する必要があります。例えば、擬似要素とグラデーションを使用して同様の効果を実現できます。
  • Q: background-clip を使用して、境界線の内側にだけ背景画像を表示するにはどうすればよいですか?
    A: background-clip: padding-box を使用します。これにより、背景画像はパディングの範囲まで表示され、境界線は背景画像で覆われません。