Свойство CSS `mask-clip`
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с декабря 2023 года.
Свойство mask-clip CSS определяет область, на которую воздействует маска. Содержимое элемента, которое отображается, должно быть ограничено этой областью.
Синтаксис
/* <coord-box> values */ mask-clip: content-box; mask-clip: padding-box; mask-clip: border-box; mask-clip: fill-box; mask-clip: stroke-box; mask-clip: view-box; /* Keyword values */ mask-clip: no-clip; /* 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: revert; mask-clip: revert-layer; mask-clip: unset;
Значения
Свойство принимает список ключевых слов, разделённых запятыми. Каждое значение — это <coord-box> или no-clip:
-
content-box - Отображаемое содержимое обрезается по границам области содержимого.
-
padding-box - Отображаемое содержимое обрезается по границам области внутренних отступов.
-
border-box - Отображаемое содержимое обрезается по границам рамки.
-
fill-box - Отображаемое содержимое обрезается по границам ограничивающей рамки объекта.
-
stroke-box - Отображаемое содержимое обрезается по границам ограничивающей рамки обводки.
-
view-box - В качестве опорной рамки используется ближайшая область просмотра SVG. Если для элемента, создающего область просмотра SVG, указан атрибут
viewBox, опорная рамка располагается в начале системы координат, заданной атрибутомviewBox, а её размеры устанавливаются в соответствии со значениями ширины и высоты атрибутаviewBox. -
no-clip - Отображаемое содержимое не обрезается.
-
border - Это ключевое слово ведёт себя так же, как
border-box. -
padding - Это ключевое слово ведёт себя так же, как
padding-box. -
content - Это ключевое слово ведёт себя так же, как
content-box. -
text - Это ключевое слово обрезает изображение маски по тексту элемента.
Описание
Свойство mask-clip определяет область элемента, на которую воздействует применённая маска.
Для слоёв маски с изображениями, которые не ссылаются на элемент SVG <mask>, свойство mask-clip определяет область отрисовки маски — область, на которую она воздействует. Отображаемое содержимое элемента будет ограничено этой областью.
Свойство mask-clip не влияет на слой маски с изображением, ссылающийся на элемент <mask>. Атрибуты x, y, width, height и maskUnits элемента <mask> определяют область отрисовки маски, если источник mask-image — это <mask>.
К элементу можно применить несколько слоёв маски. Количество слоёв определяется числом значений, разделённых запятыми, в значении свойства mask-image (даже если значение равно none). Каждое значение mask-clip в списке значений, разделённых запятыми, сопоставляется с соответствующим значением mask-image в том же порядке. Если количество значений в двух свойствах различается, избыточные значения mask-clip не используются. Если же у mask-clip значений меньше, чем у mask-image, значения mask-clip повторяются.
Формальное определение
| Исходное значение | border-box |
|---|---|
| Применяется к | всем элементам; в SVG применяется к контейнерным элементам, за исключением элемента <defs>, и ко всем графическим элементам |
| Наследуется | нет |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
mask-clip = [ <coord-box> | no-clip ]# <coord-box> = <paint-box> | view-box <paint-box> = <visual-box> | fill-box | stroke-box <visual-box> = content-box | padding-box | border-box
Примеры
Обрезка маски по границам рамки
В этом примере показаны три значения mask-clip.
HTML
Мы добавляем три элемента, каждому из которых в качестве имени класса задаём своё значение <coord-box>.
<div class="border-box"></div> <div class="padding-box"></div> <div class="content-box"></div>
CSS
В CSS для элемента задаются фон, рамка, внутренние и внешние отступы, а также изображение маски. Для каждого <div> задано своё значение <coord-box>. Мы добавили генерируемое содержимое с именем класса и сдвинули этот текст вверх на 10px, чтобы маска не скрывала его.
div {
width: 100px;
height: 100px;
background-color: #8cffa0;
margin: 10px;
border: 20px solid #8ca0ff;
padding: 20px;
mask-image: url("https://mdn.github.io/shared-assets/images/examples/mdn.svg");
mask-size: 100% 100%;
}
.content-box {
mask-clip: content-box;
}
.border-box {
mask-clip: border-box;
}
.padding-box {
mask-clip: padding-box;
}
div::before {
content: attr(class);
position: relative;
top: -10px;
}
body {
display: flex;
flex-flow: row wrap;
}
Результаты
Спецификации
| Спецификация |
|---|
| CSS Masking Module Level 1 # the-mask-clip |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
mask-clip |
120
1
|
120
79
|
53 |
106
15
|
15.4
4
|
120
18
|
53 |
80
14
|
15.4
3.2
|
25.0
1.0
|
120
2
|
15.4
3.2
|
border |
1Работает только при использовании-webkit-mask-clip. |
79Работает только при использовании-webkit-mask-clip. |
Нет |
15Работает только при использовании-webkit-mask-clip. |
4 |
18Работает только при использовании-webkit-mask-clip. |
Нет |
14Работает только при использовании-webkit-mask-clip. |
3.2 |
1.0Работает только при использовании-webkit-mask-clip. |
2 |
Нет |
border-box |
120 |
120 |
53 |
106 |
Нет |
120 |
53 |
80 |
Нет |
25.0 |
120 |
Нет |
content |
1Работает только при использовании-webkit-mask-clip. |
79Работает только при использовании-webkit-mask-clip. |
Нет |
15Работает только при использовании-webkit-mask-clip. |
4 |
18Работает только при использовании-webkit-mask-clip. |
Нет |
14Работает только при использовании-webkit-mask-clip. |
3.2 |
1.0Работает только при использовании-webkit-mask-clip. |
2 |
Нет |
content-box |
120 |
120 |
53 |
106 |
Нет |
120 |
53 |
80 |
Нет |
25.0 |
120 |
Нет |
fill-box |
120 |
120 |
53 |
106 |
Нет |
120 |
53 |
80 |
Нет |
25.0 |
120 |
Нет |
no-clip |
120 |
120 |
53 |
106 |
Нет |
120 |
53 |
80 |
Нет |
25.0 |
120 |
Нет |
padding |
1Работает только при использовании-webkit-mask-clip. |
79Работает только при использовании-webkit-mask-clip. |
Нет |
15Работает только при использовании-webkit-mask-clip. |
4 |
18Работает только при использовании-webkit-mask-clip. |
Нет |
14Работает только при использовании-webkit-mask-clip. |
3.2 |
1.0Работает только при использовании-webkit-mask-clip. |
2 |
Нет |
padding-box |
120 |
120 |
53 |
106 |
Нет |
120 |
53 |
80 |
Нет |
25.0 |
120 |
Нет |
stroke-box |
120 |
120 |
53 |
106 |
Нет |
120 |
53 |
80 |
Нет |
25.0 |
120 |
Нет |
text |
1Работает только при использовании-webkit-mask-clip. |
79Работает только при использовании-webkit-mask-clip. |
Нет |
15Работает только при использовании-webkit-mask-clip. |
4 |
18Работает только при использовании-webkit-mask-clip. |
Нет |
14Работает только при использовании-webkit-mask-clip. |
3.2 |
1.0Работает только при использовании-webkit-mask-clip. |
2 |
Нет |
view-box |
120 |
120 |
53 |
106 |
Нет |
120 |
53 |
80 |
Нет |
25.0 |
120 |
Нет |
См. также
-
сокращённое свойство
mask mask-imagemask-originmask-positionmask-repeatmask-sizemask-borderclip-pathbackground-clip- Введение в обрезку в CSS
- Введение в маскирование в CSS
- Свойства маски CSS
mask - Задание нескольких масок
- модуль маскирования CSS
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/mask-clip