Propiedad shape-outside
La propiedad shape-outside permite definir formas no estándar para el ajuste de elementos flotantes.
Los elementos adyacentes fluirán alrededor de la forma
definida, en lugar del contenedor rectangular.
Sintaxis
selector {
shape-outside: valor;
}
Valores
| Valor | Descripción |
|---|---|
circle() |
Forma de ajuste circular |
ellipse() |
Forma de ajuste elíptica |
polygon() |
Forma poligonal arbitraria |
url() |
Forma basada en el canal alfa de una imagen |
margin-box |
Usar los límites del margen (valor por defecto) |
Ejemplo
Creemos una forma de ajuste circular
para un elemento flotante.
Usemos las propiedades shape-outside y
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;
}
:
Ejemplo
Definamos un margen mediante la propiedad 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;
}
:
Ejemplo
Sin la propiedad clip-path el texto
fluirá alrededor del círculo, pero el elemento
no tendrá 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;
}
:
Ejemplo
Otra forma para el elemento:
<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;
}
:
Ejemplo
Otra forma para el elemento:
<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;
}
:
Véase también
-
propiedad
clip-path,
que crea la forma visible del elemento -
propiedad
float,
necesaria para el funcionamiento de shape-outside -
propiedad
shape-margin,
que añade un margen alrededor de la forma