Функция inset()

Стилевая функция inset() позволяет создать прямоугольник на основе указанного расстояния от каждого края области. Положение прямоугольника и его размеры определяются с помощью одного, двух, трёх или четырёх параметров функции inset() (табл. 1).

Табл. 1. Зависимость от числа параметров
Число параметров Результат Вид
1 Размеры будут заданы одновременно от каждого края.
2 Первый параметр устанавливает размер от верхнего и нижнего краёв, второй — от левого и правого.
3 Первый параметр устанавливает размер от верхнего края, второй — одновременно от левого и правого краёв, а третий — от нижнего края.
4 Поочерёдно устанавливает размер от верхнего, правого, нижнего и левого края.

Синтаксис

inset(
  [ <размер> | <проценты>]{1,4}
  [ round <border-radius> ]?
)
Описание Пример
<тип> Указывает тип значения. <размер>
A && B Значения должны выводиться в указанном порядке. <размер> && <цвет>
A | B Указывает, что надо выбрать только одно значение из предложенных (A или B). normal | small-caps
A || B Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. width || count
[ ] Группирует значения. [ crop || cross ]
* Повторять ноль или больше раз. [,<время>]*
+ Повторять один или больше раз. <число>+
? Указанный тип, слово или группа не является обязательным. inset?
{A, B} Повторять не менее A, но не более B раз. <радиус>{1,4}
# Повторять один или больше раз через запятую. <время>#

Значения

<размер>
Расстояние до соответствующей стороны прямоугольника в доступных единицах CSS, например — px, em, rem и др.
<проценты>

Расстояние до соответствующей стороны прямоугольника в процентах, оно считаются от ширины или высоты области.

Сумма процентов по вертикали и горизонтали не должна превышать 100%. Если сумма превышает это значение (к примеру, размер слева 25%, а справа 100%, что даёт 125%), то размеры будут уменьшены пропорционально, чтобы получилось 100% (20% и 80% соответственно).

round <border-radius>
Необязательное ключевое слово round означает, что у прямоугольника следует сделать скруглённые уголки. Используется тот же синтаксис, что и для свойства border-radius.

Пример

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>inset()</title> <style> .photo { display: inline-block; /* Фотографии располагаются рядом */ } .photo:hover img { animation: clip 1s; /* Параметры анимации */ } @keyframes clip { 0% { clip-path: inset(0); } 50% { clip-path: inset(50%); } 100% { clip-path: inset(0); } } </style> </head> <body> <div class="photo"><img src="image/aquaria1.jpg"></div> <div class="photo"><img src="image/aquaria2.jpg"></div> <div class="photo"><img src="image/aquaria3.jpg"></div> </body> </html>

Спецификация

CSS Shapes Module Level 1

Браузеры

79 37 24 10.1 54
37 54 24 10.3

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.