Proprietatea shape-outside
Proprietatea shape-outside permite definirea unor forme nestandard pentru fluxul elementelor flotante.
Elementele adiacente vor fluxa în jurul formei definite,
și nu în jurul containerului rectangular.
Sintaxă
selector {
shape-outside: valoare;
}
Valori
| Valoare | Descriere |
|---|---|
circle() |
Formă circulară pentru flux |
ellipse() |
Formă eliptică pentru flux |
polygon() |
Formă poligonală arbitrară |
url() |
Formă bazată pe canalul alfa al imaginii |
margin-box |
Utilizează marginile margin (valoarea implicită) |
Exemplu
Să creăm o formă circulară pentru flux
pentru un element flotant.
Folosim proprietățile shape-outside și
clip-path:
<div class="shape"></div>
<p>
some long text
</p>
.shape {
width: 150px;
height: 150px;
float: left;
shape-outside: circle(50%);
clip-path: circle(50%);
background: #3498db;
}
p {
width: 500px;
text-align: justify;
}
:
Exemplu
Să definim un spațiu (margin) folosind proprietatea shape-margin:
<div class="shape"></div>
<p>
some long text
</p>
.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;
}
:
Exemplu
Fără proprietatea clip-path textul
va fluxa în jurul cercului, dar elementul
nu va avea forma circulară:
<div class="shape"></div>
<p>
some long text
</p>
.shape {
width: 150px;
height: 150px;
float: left;
shape-outside: circle(50%);
background: #3498db;
}
p {
width: 500px;
text-align: justify;
}
:
Exemplu
O altă formă a elementului:
<div class="shape"></div>
<p>
some long text
</p>
.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;
}
:
Exemplu
O altă formă a elementului:
<div class="shape"></div>
<p>
some long text
</p>
.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;
}
:
Vezi și
-
proprietatea
clip-path,
care creează forma vizibilă a elementului -
proprietatea
float,
necesară pentru funcționarea shape-outside -
proprietatea
shape-margin,
care adaugă un spațiu în jurul formei