Свойство shape-outside

Свойството shape-outside позволява задаването на нестандартни форми на обтичане за плаващи елементи. Съседните елементи ще обтичат зададената форма, а не правоъгълния контейнер.

Синтаксис

cssселектор {
  shape-outside: стойност;
}

Стойности

Стойност Описание
circle() Кръгла форма на обтичане
ellipse() Елиптична форма на обтичане
polygon() Произволна многоъгълна форма
url() Форма на базата на алфа канал на изображение
margin-box Използване на границите на margin (стойност по подразбиране)

Пример

Ще направим кръгла форма на обтичане за плаващ елемент. Използваме свойствата shape-outside и clip-path:

html<div class="shape"></div>
<p>
  some long text
</p>
css.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:

html<div class="shape"></div>
<p>
  some long text
</p>
css.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 текстът ще обтича кръга, но елементът няма да има кръгла форма:

html<div class="shape"></div>
<p>
  some long text
</p>
css.shape {
  width: 150px;
  height: 150px;
  float: left;
  shape-outside: circle(50%);
  background: #3498db;
}

p {
  width: 500px;
  text-align: justify;
}

Результат:

Пример

Друга форма на елемента:

html<div class="shape"></div>
<p>
  some long text
</p>
css.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;
}

Результат:

Пример

Друга форма на елемента:

html<div class="shape"></div>
<p>
  some long text
</p>
css.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,
    което добавя отстъп около формата