Vlastnost shape-outside

Vlastnost shape-outside umožňuje nastavit nestandardní tvary obtékání pro plovoucí prvky. Sousední prvky budou obtékat daný tvar, nikoli obdélníkový kontejner.

Syntaxe

cssselektor {
  shape-outside: hodnota;
}

Hodnoty

Hodnota Popis
circle() Kruhový tvar obtékání
ellipse() Eliptický tvar obtékání
polygon() Libovolný mnohoúhelníkový tvar
url() Tvar na základě alfa kanálu obrázku
margin-box Použít okraje margin (výchozí hodnota)

Příklad

Vytvoříme kruhový tvar obtékání pro plovoucí prvek. Použijeme vlastnosti shape-outside a 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;
}

Результат:

Příklad

Nastavíme odstup pomocí vlastnosti 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;
}

Результат:

Příklad

Bez vlastnosti clip-path bude text obtékat kruh, ale prvek nebude mít tvar kruhu:

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;
}

Результат:

Příklad

Jiný tvar prvku:

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;
}

Результат:

Příklad

Jiný tvar prvku:

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;
}

Результат:

Viz také

  • vlastnost clip-path,
    která vytváří viditelný tvar prvku
  • vlastnost float,
    nutná pro funkci shape-outside
  • vlastnost shape-margin,
    která přidává odstup kolem tvaru