The mask-clip
CSS property determines the area which is affected by a mask. The painted content of an element must be restricted to this area.
/* <geometry-box> values */ mask-clip: content-box; mask-clip: padding-box; mask-clip: border-box; mask-clip: margin-box; mask-clip: fill-box; mask-clip: stroke-box; mask-clip: view-box; /* Keyword values */ mask-clip: no-clip; /* Non-standard keyword values */ -webkit-mask-clip: border; -webkit-mask-clip: padding; -webkit-mask-clip: content; -webkit-mask-clip: text; /* Multiple values */ mask-clip: padding-box, no-clip; mask-clip: view-box, fill-box, border-box; /* Global values */ mask-clip: inherit; mask-clip: initial; mask-clip: unset;
Syntax
One or more of the keyword values listed below, separated by commas.
Values
content-box
- The painted content is clipped to the content box.
padding-box
- The painted content is clipped to the padding box.
border-box
- The painted content is clipped to the border box.
margin-box
- The painted content is clipped to the margin box.
fill-box
- The painted content is clipped to the object bounding box.
stroke-box
- The painted content is clipped to the stroke bounding box.
view-box
- Uses the nearest SVG viewport as reference box. If a
viewBox
attribute is specified for the element creating the SVG viewport, the reference box is positioned at the origin of the coordinate system established by theviewBox
attribute and the dimension of the reference box is set to the width and height values of theviewBox
attribute. no-clip
- The painted content is not clipped.
border
- This keyword behaves the same as
border-box
. padding
- This keyword behaves the same as
padding-box
. content
- This keyword behaves the same as
content-box
. text
- This keyword clips the mask image to the text of the element.
Formal definition
Initial value | border-box |
---|---|
Applies to | all elements; In SVG, it applies to container elements excluding the defs element and all graphics elements |
Inherited | no |
Computed value | as specified |
Animation type | discrete |
Formal syntax
[ <geometry-box> | no-clip ]#where
<geometry-box> = <shape-box> | fill-box | stroke-box | view-box
where
<shape-box> = <box> | margin-box
where
<box> = border-box | padding-box | content-box
Examples
Clipping a mask to the border box
CSS
#masked { width: 100px; height: 100px; background-color: #8cffa0; margin: 20px; border: 20px solid #8ca0ff; padding: 20px; mask-image: url(https://mdn.mozillademos.org/files/12668/MDN.svg); mask-size: 100% 100%; mask-clip: border-box; /* Can be changed in the live sample */ }
HTML
<div id="masked"> </div> <select id="clipBox"> <option value="content-box">content-box</option> <option value="padding-box">padding-box</option> <option value="border-box" selected>border-box</option> <option value="margin-box">margin-box</option> <option value="fill-box">fill-box</option> <option value="stroke-box">stroke-box</option> <option value="view-box">view-box</option> <option value="no-clip">no-clip</option> </select>
JavaScript
var clipBox = document.getElementById("clipBox"); clipBox.addEventListener("change", function (evt) { document.getElementById("masked").style.maskClip = evt.target.value; });
Result
Specifications
Specification | Status | Comment |
---|---|---|
CSS Masking Module Level 1 The definition of 'mask-clip' in that specification. |
Candidate Recommendation | Initial definition |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
mask-clip | Chrome
Full support
1
| Edge
Full support
79
| Firefox
Full support
53
| IE No support No | Opera
Full support
15
| Safari
Full support
4
| WebView Android
Full support
2
| Chrome Android
Full support
18
| Firefox Android
Full support
53
| Opera Android
Full support
14
| Safari iOS
Full support
3.2
| Samsung Internet Android
Full support
1.0
|
border | Chrome Full support 1 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 15 | Safari Full support 4 | WebView Android Full support 2 | Chrome Android Full support 18 | Firefox Android No support No | Opera Android Full support 14 | Safari iOS Full support 3.2 | Samsung Internet Android Full support 1.0 |
content</content> | Chrome Full support 1 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 15 | Safari Full support 4 | WebView Android Full support 2 | Chrome Android Full support 18 | Firefox Android No support No | Opera Android Full support 14 | Safari iOS Full support 3.2 | Samsung Internet Android Full support 1.0 |
padding | Chrome Full support 1 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 15 | Safari Full support 4 | WebView Android Full support 2 | Chrome Android Full support 18 | Firefox Android No support No | Opera Android Full support 14 | Safari iOS Full support 3.2 | Samsung Internet Android Full support 1.0 |
text | Chrome Full support 1 | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support 15 | Safari Full support 4 | WebView Android Full support 2 | Chrome Android Full support 18 | Firefox Android No support No | Opera Android Full support 14 | Safari iOS Full support 3.2 | Samsung Internet Android Full support 1.0 |
Legend
- Full support
- Full support
- No support
- No support
- Non-standard. Expect poor cross-browser support.
- Non-standard. Expect poor cross-browser support.
- User must explicitly enable this feature.
- User must explicitly enable this feature.
- Requires a vendor prefix or different name for use.
- Requires a vendor prefix or different name for use.