mask-composite 속성
mask-composite 속성을 사용하면 하나의 요소에 적용된 여러 마스크를 결합할 수 있습니다. 이 속성은 서로 다른 마스크가 겹쳐질 때 어떻게 상호작용할지를 정의합니다.
구문
선택자 {
mask-composite: <합성-연산자>#;
}
값
| 값 | 설명 |
|---|---|
add |
결과는 모든 마스크의 합집합입니다(기본값). |
subtract |
두 번째 마스크가 첫 번째 마스크에서 제외됩니다. |
intersect |
마스크들의 교차 영역만 표시됩니다. |
exclude |
마스크들 간에 공통되지 않은 영역이 표시됩니다. |
예제 . add 모드
두 마스크(하트와 화살표)의 합집합:
<img id="image" src="image.jpg">
#image {
width: 500px;
height: 281px;
mask-image:
url("heart.svg"),
url("arrow.svg");
mask-position:
100px 50px,
200px 30px;
mask-size: 150px;
mask-repeat: no-repeat;
mask-composite: add;
}
:
예제 . subtract 모드
하트에서 화살표를 뺌:
<img id="image" src="image.jpg">
#image {
width: 500px;
height: 281px;
mask-image:
url("heart.svg"),
url("arrow.svg");
mask-position:
100px 50px,
170px 80px;
mask-size:
250px,
120px;
mask-repeat: no-repeat;
mask-composite: subtract;
}
:
예제 . intersect 모드
마스크들의 교차 영역만 표시:
<img id="image" src="image.jpg">
#image {
width: 500px;
height: 281px;
mask-image:
url("heart.svg"),
url("arrow.svg");
mask-position:
100px 50px,
50px 30px;
mask-size: 150px;
mask-repeat: no-repeat;
mask-composite: intersect;
}
:
예제 . exclude 모드
공통되지 않은 영역 표시:
<img id="image" src="image.jpg">
#image {
width: 500px;
height: 281px;
mask-image:
url("heart.svg"),
url("arrow.svg");
mask-position:
100px 50px,
50px 30px;
mask-size: 150px;
mask-repeat: no-repeat;
mask-composite: exclude;
}
:
예제 . 그라디언트와의 조합
그라디언트 마스크와 함께 사용:
<div id="gradient-box"></div>
#gradient-box {
width: 400px;
height: 400px;
background: linear-gradient(45deg, red, yellow, green, blue);
mask-image:
radial-gradient(circle at 30% 30%, black 40%, transparent 70%),
radial-gradient(circle at 70% 70%, black 40%, transparent 70%);
mask-composite: exclude;
}
:
같이 보기
-
mask-image속성,
마스크용 이미지를 설정 -
mask속성,
모든 마스킹 속성의 단축 속성 -
mask-mode속성,
마스크 혼합 모드를 정의 -
mix-blend-mode속성,
요소의 혼합 모드를 정의