Перейти к основному содержимому

Формы изображений CSS

Чтобы обрезать изображения в круги, эллипсы и многоугольники, нужно совсем немного CSS.


Свойство CSS clip-path и функция circle()

Чтобы обрезать элемент по базовой форме, используйте clip-path.

Одна из таких форм — circle(), которая описывается радиусом и позицией.

Круг с радиусом 50%

Для круглой обрезки этого изображения достаточно радиуса 50%.

Prompt
Создайте HTML-страницу, отображающую изображение, обрезанное в круг с помощью CSS clip-path и функции circle() с радиусом 50%. Используйте изображение-заполнитель размером примерно 300x300 пикселей.
Результат: полная HTML-страница

Круг, расположенный справа

Центр круга тоже можно настроить. Он принимает длину, процент или одно из ключевых слов left, right, top и bottom; если ничего не задать, он остаётся в center.

Это изображение сохраняет радиус 50%, но центр круга смещается вправо.

Prompt
Создайте HTML-страницу, отображающую изображение, обрезанное в круг с помощью CSS clip-path со значением circle(50% at right), расположив центр круга справа. Используйте изображение-заполнитель размером примерно 300x300 пикселей.
Результат: полная HTML-страница

CSS shape-outside и circle()

Когда встроенное содержимое обтекает плавающий элемент, shape-outside определяет форму, по которой оно идёт.

Здесь эту форму задаёт circle(), которая принимает радиус и позицию.

Пример

Текст здесь идёт по кривой, потому что shape-outside — это круг с радиусом 45%, а само изображение обрезано в круг с радиусом 40%.

Prompt
Создайте HTML-страницу с плавающим изображением, обрезанным в круг с помощью clip-path: circle(40%), и используйте shape-outside: circle(45%), чтобы окружающий текст обтекал круглую форму. Включите абзац текста lorem ipsum рядом с изображением.
Результат: полная HTML-страница

CSS clip-path и ellipse()

Помимо кругов, clip-path может обрезать элемент и по другим базовым формам.

Одна из них — ellipse(), и ей нужны два радиуса, x и y.

Обрезка в эллипс

Радиусы для эллиптической обрезки этого изображения — 50% для x и 35% для y.

Prompt
Создайте HTML-страницу, отображающую изображение, обрезанное в эллипс с помощью CSS clip-path со значением ellipse(50% 35%). Используйте изображение-заполнитель размером примерно 300x300 пикселей.
Результат: полная HTML-страница

Эллипс, расположенный справа

Центр эллипса тоже можно сместить, используя длину, процент или ключевое слово left, right, top или bottom. Если его опустить, это означает center.

При тех же радиусах 50% по x и 35% по y центр эллипса на этом изображении смещён вправо.

Prompt
Создайте HTML-страницу, отображающую изображение, обрезанное в эллипс с помощью CSS clip-path со значением ellipse(50% 35% at right), расположив центр эллипса справа. Используйте изображение-заполнитель размером примерно 300x300 пикселей.
Результат: полная HTML-страница

CSS shape-outside и ellipse()

Текст может обтекать и эллиптическую форму, если задать shape-outside значение ellipse().

Пример

Это изображение обрезано в эллипс с радиусом x 40% и радиусом y 50%. shape-outside использует чуть больший эллипс, 45% по x и 50% по y, и текст обтекает эту эллиптическую форму.

Prompt
Создайте HTML-страницу с плавающим изображением, обрезанным в эллипс с помощью clip-path: ellipse(40% 50%), и используйте shape-outside: ellipse(45% 50%), чтобы окружающий текст обтекал эллиптическую форму. Включите абзац текста lorem ipsum рядом с изображением.
Результат: полная HTML-страница

Функция CSS polygon()

Форма многоугольника описывается с помощью polygon().

Её аргументы — это список точек, каждая из которых представляет собой пару координат x и y, заданных длинами или процентами. Верхний левый угол — 0 0, а нижний правый угол — 100% 100%.

Эту функцию принимают два свойства: clip-path и shape-outside.

Пример

Многоугольник, которым обрезано это изображение, образует ромб.

Prompt
Создайте HTML-страницу, отображающую изображение, обрезанное в форму ромбовидного многоугольника с помощью CSS clip-path со значением polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%). Используйте изображение-заполнитель размером примерно 300x300 пикселей.
Результат: полная HTML-страница

Свойства и функции CSS

Краткий обзор того, что использовалось в этой главе, — и свойств, и функций:

  • clip-path - обрезает элемент по базовой форме или источнику SVG.
  • shape-outside - задаёт форму, по которой идёт обтекающее встроенное содержимое.
  • circle() - круг, заданный радиусом и позицией.
  • ellipse() - эллипс, заданный радиусами x и y.
  • polygon() - многоугольник.