mask-compositeプロパティは、複数マスクの合成方法を指定する際に使用します。
mask-imageプロパティの値にカンマ区切りで複数のマスクレイヤーイメージを指定した場合、重なった複数のマスクがどのように合成されるかについて mask-compositeプロパティの値で指定し分けることができます。
このページ内のサンプルでは、マスクレイヤーとして以下の20×20ピクセルの黒丸画像、および、200×200ピクセルのハート画像の2枚を使用します。
いずれも黒丸とハートの図形部分以外は透明にしてあります。
マスク処理対象となる要素は、以下の200×200ピクセルの画像です。
※W3Cサイトに掲載されている以下の図が分かりやすいでしょう。
img.sample0 {
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
}
img.sample1 {
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: add;
}
img.sample2 {
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: subtract;
}
img.sample3 {
mask-image: url(‘images/heart.png’), url(‘images/maru20.png’);
mask-composite: subtract;
}
img.sample4 {
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: intersect;
}
img.sample5 {
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: exclude;
}
<p>
mask-compositeプロパティの指定なし<br>
<img class=”sample0″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: add; を指定<br>
<img class=”sample1″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: subtract; を指定<br>
<img class=”sample2″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/heart.png’), url(‘images/maru20.png’); ※これだけ順序が逆<br>
mask-composite: subtract; を指定<br>
<img class=”sample3″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: intersect; を指定<br>
<img class=”sample4″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: exclude; を指定<br>
<img class=”sample5″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
mask-compositeプロパティの指定なし
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: add; を指定
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: subtract; を指定
mask-image: url(‘images/heart.png’), url(‘images/maru20.png’); ※これだけ順序が逆
mask-composite: subtract; を指定
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: intersect; を指定
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: exclude; を指定
img.prefix_sample0 {
-webkit-mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
}
img.prefix_sample1 {
-webkit-mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
-webkit-mask-composite: add;
}
img.prefix_sample2 {
-webkit-mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
-webkit-mask-composite: subtract;
}
img.prefix_sample3 {
-webkit-mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
-webkit-mask-composite: subtract;
}
img.prefix_sample4 {
-webkit-mask-image: url(‘images/heart.png’), url(‘images/maru20.png’);
-webkit-mask-composite: intersect;
}
img.prefix_sample5 {
-webkit-mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
-webkit-mask-composite: exclude;
}
<p>
mask-compositeプロパティの指定なし<br>
<img class=”prefix_sample0″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: add; を指定<br>
<img class=”prefix_sample1″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: subtract; を指定<br>
<img class=”prefix_sample2″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/heart.png’), url(‘images/maru20.png’);<br>
mask-composite: subtract; を指定<br>
<img class=”prefix_sample3″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: intersect; を指定<br>
<img class=”prefix_sample4″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
<p>
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);<br>
mask-composite: exclude; を指定<br>
<img class=”prefix_sample5″ src=”https://www.htmq.com/wp-content/themes/htmq/htmq-images/uirou.png”>
</p>
mask-compositeプロパティの指定なし
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: add; を指定
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: subtract; を指定
mask-image: url(‘images/heart.png’), url(‘images/maru20.png’);
mask-composite: subtract; を指定
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: intersect; を指定
mask-image: url(‘images/maru20.png’), url(‘images/heart.png’);
mask-composite: exclude; を指定