Поиск…


Синтаксис

  • вырезка
  • клип-путь: <clip-source> | [<basic-shape> || <clip-geometry-box>] | никто
  • маскировка
  • mask-image: [none | <маска-ссылка>] #
  • маска-режим: [<маска-режим>] #
  • mask-repeat: [<стиль повтора] #
  • mask-position: [<position>] #
  • mask-clip: [<geometry-box> | без обрезки ]#
  • mask-origin: [<geometry-box>] #
  • mask-size: [<bg-size>] #
  • mask-composite: [<compositing-operator>] #
  • mask: [<mask-reference> <masking-mode>? || <position> [/ <bg-size>]? || <повторный стиль> || <геометрия> || [<geometry-box> | no-clip] || <compositing-operator>] #

параметры

параметр подробности
Клип-источник URL-адрес, который может указывать на встроенный элемент SVG (или) элемент SVG во внешнем файле, который содержит определение пути клипа.
Основная форма, Относится к одному из inset() , circle() , ellipse() или polygon() . Используя одну из этих функций, определяется путь обрезки. Эти функции формы работают точно так же, как и в фигурах для плавающих
клип геометрии коробки Это может иметь один среди content-box , padding-box , border-box , margin-box , fill-box , stroke-box , view-box как значения. Когда это предусмотрено без каких-либо значений для <basic-shape>, края соответствующего окна используются как путь для отсечения. При использовании с <основной формой->, это действует в качестве опорного поля для формы.
Маска-справочник Это может быть none ни образ или ссылочный URL-адрес для источника изображения маски.
повторить стиль Это указывает, как следует повторять или чередовать маску в осях X и Y. Поддерживаемые значения: repeat-x , repeat-y , repeat , space , round , no-repeat .
Маска режима Может быть alpha или luminance или auto и указывает, следует ли рассматривать маску как альфа-маску или маску яркости. Если значение не указано, а ссылка на маску является прямым изображением, то она будет считаться альфа-маской (или), если ссылка на маску является URL-адресом, тогда она будет считаться маской яркости.
позиция Это определяет положение каждого слоя маски и аналогично поведению свойства background-position . Значение может быть представлено в синтаксисе 1 синтаксиса (например, top , 10% ) или в синтаксисе значения 2 (например, top right , 50% 50% ).
геометрии коробки Это указывает поле, в которое должна быть обрезана маска (область маскирования масок ), или поле, которое должно использоваться в качестве ссылки для источника маски ( область расположения маски ) в зависимости от свойства. Список возможных значений: content-box , padding-box , border-box , margin-box , « fill-box , « stroke-box , « view-box . Подробное объяснение того, как работает каждое из этих значений, доступно в спецификации W3C .
BG-размер Это представляет собой размер каждого слоя маски и имеет тот же синтаксис, что и background-size . Значение может быть длиной или процентом или автоматически, или содержать или содержать. Длина, процент и авто могут быть предоставлены как одно значение или как одно для каждой оси.
композитинга-оператор Это может быть любой из add , subtract , exclude , multiply per layer и определяет тип операции компоновки, который должен использоваться для этого слоя, с теми, что ниже него. Подробное объяснение каждого значения доступно в спецификациях W3C .

замечания

CSS Clipping and Masking - это очень новые концепции, поэтому поддержка браузером этих свойств довольно низкая.

Маски:

Как и в момент написания (июль '16), Chrome, Safari и Opera поддерживают эти свойства с -webkit- префикса -webkit- .

Firefox не требует префиксов, но он поддерживает маски только при использовании с элементами mask SVG. Для встроенных элементов mask SVG синтаксисом является mask: url(#msk) тогда как для использования элементов mask во внешнем SVG-файле синтаксис является mask: url('yourfilepath/yourfilename.svg#msk') . #msk в обоих случаях относится к id элемента mask , на который ссылается. Как указано в этом ответе , в настоящее время Firefox не поддерживает какой-либо параметр, отличный от mask-reference в свойстве mask .

Internet Explorer (и Edge) пока не предлагает поддержку для этого свойства.

Свойство mask-mode в настоящее время не поддерживается ни одним браузером с префиксами или без них .

Clip-путь:

Как и в момент написания (Jul '16), Chrome, Safari и Opera поддерживают clip-path когда путь создается с использованием базовых форм (например, circle , polygon ) или синтаксиса url(#clipper) с встроенным SVG. Они не поддерживают отсечение на основе форм, которые являются частью внешних SVG-файлов. Кроме того, они требуют -webkit префикса -webkit .

Firefox поддерживает только синтаксис url() для clip-path тогда как Internet Explorer (и Edge) не предлагает поддержки.

Обрезка (многоугольник)

CSS:

div{
  width:200px;
  height:200px;
  background:teal;
  clip-path: polygon(0 0, 0 100%, 100% 50%); /* refer remarks before usage */
}

HTML:

<div></div>

В приведенном выше примере полигональный путь отсечения используется для закрепления квадратного (200 x 200) элементов в форме треугольника. Форма вывода является треугольником, потому что путь начинается с (то есть, первые координаты находятся на) 0 0 - это верхний левый угол поля, затем идет до 0 100% - это нижний левый угол поля а затем, наконец, до 100% 50% что не что иное, как правая-средняя точка коробки. Эти пути закрываются автоматически (то есть, отправной точкой будет конечная точка), и поэтому конечная фигура имеет форму треугольника.

Это также можно использовать на элементе с изображением или градиентом в качестве фона.

Пример просмотра

Выход:

введите описание изображения здесь

Обрезание (круг)

CSS:

div{
  width: 200px;
  height: 200px;
  background: teal;
  clip-path: circle(30% at 50% 50%); /* refer remarks before usage */
}

HTML

<div></div>

В этом примере показано, как скопировать div в круг. Элемент обрезается в круг, радиус которого 30% на основе размеров опорной коробки с его центральной точки в центре опорной коробки. Здесь, так как не предоставляется <clip-geometry-box> (другими словами, ссылочный блок), в качестве ссылочного поля будет использоваться border-box элемент.

Форма круга должна иметь радиус и центр с координатами (x,y) :

circle(radius at x y)

Пример просмотра

Выход:

Круг с клипом для CSS

Обрезка и маскировка: обзор и различие

С помощью Clipping and Masking вы можете сделать некоторые части элементов прозрачными или непрозрачными. Оба могут быть применены к любому элементу HTML.

вырезка

Клипы являются векторными дорожками. Вне этого пути элемент будет прозрачным, внутри непрозрачным. Поэтому вы можете определить свойство clip-path для элементов. Каждый графический элемент, который также существует в SVG, вы можете использовать здесь как функцию для определения пути. Примерами являются circle() , polygon() или ellipse() .

дорожка

пример
clip-path: circle(100px at center);

Элемент будет виден только внутри этого круга, который расположен в центре элемента и имеет радиус 100 пикселей.

маскировка

Маски похожи на Clips, но вместо определения пути вы определяете маску, какие слои над элементом. Вы можете представить эту маску как изображение, состоящее в основном из двух цветов: черно-белого.

Маска яркости : черный означает, что область непрозрачна, а белый - прозрачный, но есть также полупрозрачная серая область, поэтому вы можете делать плавные переходы.

Альфа-маска : только на прозрачных участках маски элемент будет непрозрачным.

маска яркости

Это изображение, например, можно использовать в качестве маски яркости, чтобы сделать элемент очень плавным переходом справа налево и от непрозрачного до прозрачного.

Свойство mask позволяет указать тип маски и изображение, которое будет использоваться как слой.

пример
mask: url(masks.svg#rectangle) luminance;

Элемент, называемый rectangle определенным в masks.svg будет использоваться в качестве маски яркости для элемента.

Простая маска, которая уменьшает изображение от сплошного до прозрачного

CSS

div {
  height: 200px;
  width: 200px;
  background: url(http://lorempixel.com/200/200/nature/1);
  mask-image: linear-gradient(to right, white, transparent); 
}

HTML

<div></div>

В приведенном выше примере есть элемент с изображением в качестве фона. Маска, применяемая к изображению (с использованием CSS), выглядит так, как будто она исчезает слева направо.

Маскирование достигается с помощью linear-gradient который идет от белого (слева) до прозрачного (справа) в качестве маски. Поскольку это альфа-маска, изображение становится прозрачным, когда маска прозрачна.

Выход без маски:

введите описание изображения здесь

Выход с маской:

введите описание изображения здесь

Примечание. Как упоминалось в примечаниях, приведенный выше пример будет работать в Chrome, Safari и Opera только при использовании с префиксом -webkit . Этот пример (с linear-gradient как изображение маски) еще не поддерживается в Firefox.

Использование масок для вырезания отверстия в середине изображения

CSS

div {
  width: 200px;
  height: 200px;
  background: url(http://lorempixel.com/200/200/abstract/6);
  mask-image: radial-gradient(circle farthest-side at center, transparent 49%, white 50%); /* check remarks before using */
}

HTML

В приведенном выше примере прозрачный круг создается в центре с использованием radial-gradient и затем он используется в качестве маски для создания эффекта вырезания круга из центра изображения.

Изображение без маски:

введите описание изображения здесь

Изображение с маской:

введите описание изображения здесь

Использование масок для создания изображений с неправильной формой

CSS

div { /* check remarks before usage */
  height: 200px;
  width: 400px;
  background-image: url(http://lorempixel.com/400/200/nature/4);
  mask-image: linear-gradient(to top right, transparent 49.5%, white 50.5%), linear-gradient(to top left, transparent 49.5%, white 50.5%), linear-gradient(white, white);
  mask-size: 75% 25%, 25% 25%, 100% 75%;
  mask-position: bottom left, bottom right, top left;
  mask-repeat: no-repeat;
}

HTML

<div></div>

В приведенном выше примере три изображения с linear-gradient (которые при размещении в их соответствующих положениях будут покрывать 100% х 100% от размера контейнера) используются в качестве масок для создания прозрачного треугольного реза в нижней части изображения.

Изображение без маски:

введите описание изображения здесь

Изображение с маской:

введите описание изображения здесь



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow