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

cssselector {
  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:

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

Результат:

Ejemplo

Definamos un margen mediante la propiedad 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;
}

Результат:

Ejemplo

Sin la propiedad clip-path el texto fluirá alrededor del círculo, pero el elemento no tendrá forma circular:

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

Результат:

Ejemplo

Otra forma para el elemento:

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

Результат:

Ejemplo

Otra forma para el elemento:

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

Результат:

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