Vlastnosť shape-outside

Vlastnosť shape-outside umožňuje nastaviť neštandardné tvary obtoku pre plávajúce elementy. Susediace elementy budú obtiekať zadaný tvar, a nie obdĺžnikový kontajner.

Syntax

cssselektor {
  shape-outside: hodnota;
}

Hodnoty

Hodnota Popis
circle() Kruhový tvar obtoku
ellipse() Eliptický tvar obtoku
polygon() Ľubovoľný mnohouholníkový tvar
url() Tvar založený na alfa-kanále obrázka
margin-box Použiť hranice margin (predvolená hodnota)

Príklad

Vytvoríme kruhový tvar obtoku pre plávajúci element. 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;
}

Результат:

Príklad

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

Результат:

Príklad

Bez vlastnosti clip-path text bude obtiekať okolo kruhu, ale element nebude mať 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;
}

Результат:

Príklad

Iný tvar elementu:

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

Результат:

Príklad

Iný tvar elementu:

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

Результат:

Pozrite tiež

  • vlastnosť clip-path,
    ktorá vytvára viditeľný tvar elementu
  • vlastnosť float,
    nevyhnutná pre fungovanie shape-outside
  • vlastnosť shape-margin,
    ktorá pridáva odstup okolo tvaru