Właściwość shape-outside

Właściwość shape-outside pozwala definiować niestandardowe kształty opływania dla elementów pływających. Sąsiednie elementy będą opływać zadany kształt, a nie prostokątny kontener.

Składnia

cssselektor {
  shape-outside: wartość;
}

Wartości

Wartość Opis
circle() Okrągły kształt opływania
ellipse() Elipsoidalny kształt opływania
polygon() Dowolny kształt wielokątny
url() Kształt na podstawie kanału alfa obrazu
margin-box Użyj granic marginesu (wartość domyślna)

Przykład

Stwórzmy okrągły kształt opływania dla elementu pływającego. Użyjmy właściwości shape-outside i 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;
}

Результат:

Przykład

Ustawmy odstęp za pomocą właściwości 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;
}

Результат:

Przykład

Bez właściwości clip-path tekst będzie opływał okrąg, ale element nie będzie miał kształtu koła:

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

Результат:

Przykład

Inny kształt 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;
}

Результат:

Przykład

Inny kształt 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;
}

Результат:

Zobacz też

  • właściwość clip-path,
    która tworzy widoczny kształt elementu
  • właściwość float,
    niezbędna do działania shape-outside
  • właściwość shape-margin,
    która dodaje odstęp wokół kształtu