De eigenschap shape-outside

De eigenschap shape-outside maakt het mogelijk niet-standaard stroomvormen in te stellen voor drijvende elementen. Aangrenzende elementen zullen om de opgegeven vorm stromen, in plaats van om de rechthoekige container.

Syntaxis

cssselector {
  shape-outside: waarde;
}

Waarden

Waarde Beschrijving
circle() Ronde stroomvorm
ellipse() Elliptische stroomvorm
polygon() Willekeurige veelhoekvorm
url() Vorm gebaseerd op het alfrakanaal van een afbeelding
margin-box Gebruik de margin-grenzen (standaardwaarde)

Voorbeeld

Laten we een ronde stroomvorm maken voor een drijvend element. We gebruiken de eigenschappen shape-outside en 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;
}

Результат:

Voorbeeld

Laten we een marge instellen via de eigenschap 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;
}

Результат:

Voorbeeld

Zonder de eigenschap clip-path zal de tekst om de cirkel stromen, maar het element zal zelf geen cirkelvorm hebben:

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

Результат:

Voorbeeld

Een andere vorm voor het element:

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

Результат:

Voorbeeld

Een andere vorm voor het element:

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

Результат:

Zie ook

  • de eigenschap clip-path,
    die de zichtbare vorm van een element creëert
  • de eigenschap float,
    nodig voor de werking van shape-outside
  • de eigenschap shape-margin,
    die een marge rond de vorm toevoegt