mask-mode プロパティ

プロパティ mask-mode は、マスクが要素の背景と相互作用する方法を設定します。マスクが画像マスクのアルファチャネル(透明度)を使用するか、輝度値(luminance)を使用するかを決定します。

構文

cssセレクタ {
  mask-mode: alpha | luminance | match-source;
}

値

値 説明
alpha マスクは画像のアルファチャネル(透明度)のみを使用します。
luminance マスクは画像の輝度値を使用します(白 = 表示、黒 = 透明)。
match-source 画像にはアルファチャネルを、SVGには輝度(luminance)を使用します(デフォルト値)。

例 . alpha モード

alpha モードでの SVG マスクの適用:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask: url("heart.svg") center/150px no-repeat;
  mask-mode: alpha;
}

Результат:

例 . luminance モード

luminance モードでの SVG マスクの適用:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask: url("heart.svg") center/150px no-repeat;
  mask-mode: luminance;
}

Результат:

例 . match-source モードでの SVG マスク

SVG に対するデフォルト値(match-source)の使用:

html<img id="image" src="image.jpg">
<svg width="0" height="0">
  <mask id="svg-mask">
    <path d="M150 15L183 111L285 111L204 171L237 267L150 216L63 267L96 171L15 111L117 111Z" fill="white"/>
  </mask>
</svg>
css#image {
  width: 500px;
  height: 281px;
  mask: url(#svg-mask);
  mask-mode: match-source;
}

Результат:

例 . 異なるモードでの合成

異なる合成モードのマスクの組み合わせ:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask: 
    url("heart.svg") 100px 50px / 150px no-repeat alpha,
    url("arrow.svg") 200px 30px / 150px no-repeat luminance;
  mask-composite: add;
}

Результат:

関連項目

  • プロパティ mask-image,
    マスクの画像を指定します
  • プロパティ mask-composite,
    複数のマスクの相互作用を定義します
  • プロパティ mask,
    すべてのマスキングプロパティの一括指定です