Свойство shape-outside
Свойство shape-outside позволяет задавать нестандартные формы обтекания для плавающих элементов.
Соседние элементы будут обтекать заданную
форму, а не прямоугольный контейнер.
Синтаксис
селектор {
shape-outside: значение;
}
Значения
| Значение | Описание |
|---|---|
circle() |
Круглая форма обтекания |
ellipse() |
Эллиптическая форма обтекания |
polygon() |
Произвольная многоугольная форма |
url() |
Форма на основе альфа-канала изображения |
margin-box |
Использовать границы margin (значение по умолчанию) |
Пример
Сделаем круглую форму обтекания
для плавающего элемента.
Используем свойства shape-outside и
clip-path:
<div class="shape"></div>
<p>
some long text
</p>
.shape {
width: 150px;
height: 150px;
float: left;
shape-outside: circle(50%);
clip-path: circle(50%);
background: #3498db;
}
p {
width: 500px;
text-align: justify;
}
:
Пример
Зададим отступ через свойство shape-margin:
<div class="shape"></div>
<p>
some long text
</p>
.shape {
width: 150px;
height: 150px;
float: left;
shape-outside: circle(50%);
shape-margin: 10px;
clip-path: circle(50%);
background: #3498db;
}
p {
width: 500px;
text-align: justify;
}
:
Пример
Без свойства clip-path текст
текст будет обтекать круг, но элемент
не будет иметь форму круга:
<div class="shape"></div>
<p>
some long text
</p>
.shape {
width: 150px;
height: 150px;
float: left;
shape-outside: circle(50%);
background: #3498db;
}
p {
width: 500px;
text-align: justify;
}
:
Пример
Другая форма элемента:
<div class="shape"></div>
<p>
some long text
</p>
.shape {
width: 200px;
height: 200px;
background-color: #4CAF50;
float: left;
shape-outside: polygon(0% 0%, 100% 50%, 0% 100%);
clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
margin-right: 20px;
margin-bottom: 20px;
}
p {
width: 500px;
text-align: justify;
}
:
Пример
Другая форма элемента:
<div class="shape"></div>
<p>
some long text
</p>
.shape {
width: 200px;
height: 200px;
background-color: #4CAF50;
float: left;
shape-outside: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
margin-right: 20px;
margin-bottom: 20px;
}
p {
width: 500px;
text-align: justify;
}
:
Смотрите также
-
свойство
clip-path,
которое создает видимую форму элемента -
свойство
float,
необходимое для работы shape-outside -
свойство
shape-margin,
которое добавляет отступ вокруг формы