mask-clip 속성
mask-clip 속성은 마스크가 표시될 요소의 영역을 설정합니다. 이는 요소의 어떤 부분이 마스킹의 영향을 받고, 어떤 부분이 변경 없이 보일지 정의합니다.
구문
selector {
mask-clip: value | no-clip;
}
값
| 값 | 설명 |
|---|---|
border-box |
마스크가 요소의 테두리를 포함한 영역에 적용됩니다. |
padding-box |
마스크가 패딩을 포함하지만 테두리는 제외한 영역에 적용됩니다. |
content-box |
마스크가 요소의 콘텐츠 영역에만 적용됩니다. |
margin-box |
마스크가 마진을 포함한 영역에 적용됩니다(실험적). |
fill-box |
마스크가 객체의 경계 상자(bounding box)에 적용됩니다(SVG용). |
stroke-box |
마스크가 스트로크 경계 상자(stroke bounding box)에 적용됩니다(SVG용). |
view-box |
마스크가 뷰박스(viewbox)에 적용됩니다(SVG용). |
no-clip |
마스크가 요소의 영역에 제한되지 않습니다. |
기본값: border-box.
예시 . 서로 다른 영역에 mask-clip 적용
테두리와 패딩이 있는 요소에서 다양한 mask-clip 값을 비교해 보세요:
<div class="box border-box">border-box</div>
<div class="box padding-box">padding-box</div>
<div class="box content-box">content-box</div>
.box {
width: 200px;
height: 100px;
margin: 20px;
padding: 20px;
border: 10px dashed black;
background: linear-gradient(45deg, red, blue);
mask-image: linear-gradient(to right, black, transparent);
mask-size: 100% 100%;
mask-repeat: no-repeat;
display: inline-block;
}
.border-box {
mask-clip: border-box;
}
.padding-box {
mask-clip: padding-box;
}
.content-box {
mask-clip: content-box;
}
:
예시 . no-clip 사용
마스크가 요소의 경계를 벗어나는 no-clip 값의 데모:
<div id="elem"></div>
#elem {
width: 200px;
height: 200px;
background: linear-gradient(45deg, red, blue);
mask-image: radial-gradient(circle, black 50%, transparent 70%);
mask-size: 300px 300px;
mask-position: center;
mask-clip: no-clip;
border: 2px solid black;
}
:
예시 . 다양한 mask-clip 값이 적용된 SVG
SVG 요소에 다양한 값 적용:
<svg width="400" height="200">
<defs>
<mask id="mask1" maskContentUnits="objectBoundingBox">
<rect x="0.1" y="0.1" width="0.8" height="0.8" fill="white"/>
</mask>
</defs>
<rect x="10" y="10" width="180" height="180" fill="blue"
mask="url(#mask1)" mask-clip="fill-box"/>
<rect x="210" y="10" width="180" height="180" fill="red"
mask="url(#mask1)" mask-clip="view-box"/>
</svg>
:
함께 보기
-
mask-origin속성,
마스크의 원점을 정의합니다 -
mask-image속성,
마스크 이미지를 설정합니다 -
mask속성,
모든 마스킹 속성의 단축 속성입니다 -
clip-path속성,
요소에 대한 클리핑 경로를 생성합니다