This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
The mask-origin
CSS property determines the origin of a mask.
/* Keyword values */ mask-origin: content-box; mask-origin: padding-box; mask-origin: border-box; mask-origin: margin-box; mask-origin: fill-box; mask-origin: stroke-box; mask-origin: view-box; /* Multiple values */ mask-origin: padding-box, content-box; mask-origin: view-box, fill-box, border-box; /* Non-standard keyword values */ -webkit-mask-origin: content; -webkit-mask-origin: padding; -webkit-mask-origin: border; /* Global values */ mask-origin: inherit; mask-origin: initial; mask-origin: unset;
For elements rendered as a single box, this property specifies the mask positioning area. In other words, this property specifies the origin position of an image specified by the mask-image
CSS property. For elements rendered as multiple boxes, such as inline boxes on several lines or boxes on several pages, it specifies which boxes box-decoration-break
operates upon to determine the mask positioning area.
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 |
Media | visual |
Computed value | as specified |
Animation type | discrete |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
Syntax
One or more of the keyword values listed below, separated by commas.
Values
content-box
- The position is relative to the content box.
padding-box
- The position is relative to the padding box. For single boxes
0 0
is the upper left corner of the padding edge,100% 100%
is the lower right corner. border-box
- The position is relative to the border box.
margin-box
- The position is relative to the margin box.
fill-box
- The position is relative to the object bounding box.
stroke-box
- The position is relative 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. content
- Same as
content-box
. padding
- Same as
padding-box
. border
- Same as
border-box
.
Formal syntax
<geometry-box>#where
<geometry-box> = <shape-box> | fill-box | stroke-box | view-box
Example
CSS Content
#masked { width: 100px; height: 100px; margin: 10px; border: 10px solid blue; background-color: #8cffa0; padding: 10px; mask-image: url(https://mdn.mozillademos.org/files/12676/star.svg); mask-origin: border-box; /* Can be changed in the live sample */ }
HTML Content
<div id="masked"> </div> <select id="origin"> <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> </select>
JavaScript Content
var origin = document.getElementById("origin"); origin.addEventListener("change", function (evt) { document.getElementById("masked").style.maskOrigin = evt.target.value; });
Specifications
Specification | Status | Comment |
---|---|---|
CSS Masking Module Level 1 The definition of 'mask-origin' in that specification. |
Candidate Recommendation | Initial definition |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Edge | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | (Yes)-webkit[1] | 53.0 (53.0) | No support | ? | (Yes)-webkit[1] | (Yes)-webkit[1] |
fill-box , stroke-box , view-box |
No support | No support | No support | ? | ? | ? |
content , padding , border |
1.0-webkit | No support | No support | ? | No support | 4.0-webkit |
Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | ? | 53.0 (53.0) | ? | ? | ? |
fill-box , stroke-box , view-box |
? | No support | ? | ? | ? |
content , padding , border |
2.1-webkit | No support | ? | ? | 3.2-webkit |
[1] WebKit and Blink currently don't support the value margin-box
.