DigitalOcean 为您的旅程的每个阶段提供云产品。 立即开始使用 $200 免费积分!
mask-origin 指定 遮罩层图像 的遮罩位置区域。 换句话说,它定义了遮罩层图像的原点位置,无论是 边框、填充或内容框的边缘。
.element {
mask-image: url(star.svg);
mask-origin: content-box;
}
对于渲染为单个框的元素,mask-origin 指定遮罩定位区域。 对于渲染为多个框的元素(例如,多行内联框、多页框),该属性指定 box-decoration-break 在哪些框上操作以确定遮罩定位区域。
此属性类似于 background-origin 属性,除了它具有不同的初始值和三个适用于 SVG 元素的附加值。
在以下演示中,您可以更改遮罩层图像的原点。 底部有相同的图像,以更好地显示遮罩效果并标记边框和填充区域
语法
mask-origin: <geometry-box> = content-box | padding-box | border-box | margin-box | fill-box | stroke-box | view-box
- 初始值:
border-box - 应用于:所有元素。 在 SVG 中,它适用于容器元素,但不包括
<defs>元素、所有图形元素和<use>元素。 - 继承:否
- 动画类型:离散
值
/* Keywords */
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;
/* Global values */
mask-origin: intial;
mask-origin: inherit;
mask-origin: unset;
值定义
content-box: 位置相对于内容框。mask-image的原点位于内容边缘的左上角。padding-box: 位置相对于填充框。0 0处遮罩图像的原点位于填充边缘的左上角,100% 100%为右下角。border-box: 默认值,将位置相对于边框框。margin-box: 位置相对于边距框fill-box: 位置相对于对象边界框stroke-box: 位置相对于描边边界框view-box: 使用最近的 SVG 视窗作为参考框。 如果为创建 SVG 视窗的元素指定了viewBox属性,则参考框位于viewBox属性建立的坐标系的原点处,参考框的尺寸设置为viewBox属性的width和height值。initial: 应用属性的默认设置,即border-boxinherit: 采用父元素的mask-origin值。unset: 从元素中删除当前mask-origin。
使用多个值
此属性可以接受逗号分隔的遮罩原点值列表,其中每个值都应用于在 mask-image 属性中指定的对应遮罩层图像。 在以下示例中,第一个值指定第一个图像的原点,第二个值指定第二个图像的原点,依此类推。
.element {
mask-image: url(image1.png), url(image2.png), url(image3.png);
mask-origin: padding-box, border-box, content-box;
}
笔记
- 对于没有关联 CSS 布局框的 SVG 元素,值
content-box、padding-box和border-box计算为fill-box。 - 对于具有关联 CSS 布局框的元素,值
fill-box、stroke-box和view-box计算为mask-origin的initial值,即border-box。
演示
当我们重复使用蒙版层图像时,第一个实例将被定位在指定定位区域的左上角,然后根据mask-repeat属性的值从该位置开始重复。
在下面的演示中更改mask-origin的值,以更好地了解发生了什么。
浏览器支持
| IE | Edge | Firefox | Chrome | Safari | Opera |
|---|---|---|---|---|---|
| 否 | 79+ | 53+ | 全部 | 4+ | 15+ |
| Android Chrome | Android Firefox | Android 浏览器 | iOS Safari | Opera Mobile |
|---|---|---|---|---|
| 全部 | 全部 | 全部 | 全部 | 59+ |
相关信息
相关属性
mask-clip
.element { mask-clip: padding-box; }
mask-image
.element { mask-image: url(star.svg); }
mask-mode
.element { mask-mode: alpha; }
mask-position
.element { mask-position: 20px center; }
mask-repeat
.element { mask-repeat: repeat-y; }
mask-size
.element { mask-size: 200px 100px; }
mask-type
.element { mask-type: alpha; }