Propiedad CSS align-content
La propiedad align-content define cómo el navegador distribuye el espacio entre líneas. Ejemplos con los seis valores disponibles.
La propiedad CSS align-content controla cómo un contenedor flex distribuye el espacio extra entre y alrededor de sus líneas a lo largo del eje transversal. Esta página explica cuándo se aplica la propiedad, describe cada valor con un ejemplo ejecutable y muestra en qué se diferencia de las demás propiedades de alineación relacionadas.
En un contenedor flex con dirección de fila, el eje principal corre horizontalmente, por lo que el eje transversal es vertical. align-content mueve filas enteras de elementos hacia arriba, hacia abajo o las separa verticalmente — nunca afecta a los elementos de forma individual.
¿Cuándo tiene efecto align-content?
Deben cumplirse dos condiciones al mismo tiempo; de lo contrario, la propiedad no hace nada:
- El contenedor debe permitir el ajuste de línea — establece
flex-wrap: wrap(o usa el atajoflex-flow). El valor predeterminadonowrapmantiene todo en una sola línea. - Debe haber más de una línea, además de espacio libre en el eje transversal para que las líneas puedan moverse.
Si quieres alinear los elementos dentro de una sola línea, usa align-items en su lugar. align-content actúa sobre las líneas como grupo; align-items actúa sobre los elementos dentro de cada línea. La propiedad align-content es una de las propiedades de CSS3.
El valor predeterminado de esta propiedad es stretch.
La propiedad align-content acepta los siguientes valores:
- flex-start
- flex-end
- center
- space-between
- space-around
- space-evenly
- stretch
| Valor inicial | stretch |
|---|---|
| Se aplica a | Contenedores flex multilínea. |
| Heredada | No. |
| Animable | No. |
| Versión | CSS3 |
| Sintaxis DOM | object.style.alignContent = "flex-end"; |
Sintaxis
Sintaxis de la propiedad CSS align-content
align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | initial | inherit;Ejemplo de la propiedad align-content con el valor stretch:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
#example {
width: 70px;
height: 300px;
padding: 0;
border: 1px solid #c3c3c3;
display: flex;
flex-flow: row wrap;
align-content: stretch;
}
#example li {
width: 70px;
height: 70px;
list-style: none;
}
</style>
</head>
<body>
<h2>Align-content: stretch; example</h2>
<ul id="example">
<li style="background-color:#8ebf42;"></li>
<li style="background-color:#1c87c9;"></li>
<li style="background-color:#666;"></li>
</ul>
</body>
</html>Resultado
Ejemplo de la propiedad align-content con el valor "center":
<!DOCTYPE html>
<html>
<head>
<style>
#example {
width: 70px;
height: 300px;
padding: 0;
border: 1px solid #c3c3c3;
display: flex;
flex-flow: row wrap;
align-content: center;
}
#example li {
width: 70px;
height: 70px;
list-style: none;
}
</style>
</head>
<body>
<h2>Align-content: center; example</h2>
<ul id="example">
<li style="background-color:#8ebf42;"></li>
<li style="background-color:#1c87c9;"></li>
<li style="background-color:#666;"></li>
</ul>
</body>
</html>Ejemplo de la propiedad align-content con el valor "flex-start":
<!DOCTYPE html>
<html>
<head>
<style>
#example {
width: 70px;
height: 300px;
padding: 0;
border: 1px solid #c3c3c3;
display: flex;
flex-flow: row wrap;
align-content: flex-start;
}
#example li {
width: 70px;
height: 70px;
list-style: none;
}
</style>
</head>
<body>
<h2>Align-content: flex-start; example</h2>
<ul id="example">
<li style="background-color:#8ebf42;"></li>
<li style="background-color:#1c87c9;"></li>
<li style="background-color:#666;"></li>
</ul>
</body>
</html>Ejemplo de la propiedad align-content con el valor "flex-end":
<!DOCTYPE html>
<html>
<head>
<style>
#example {
width: 70px;
height: 300px;
padding: 0;
border: 1px solid #c3c3c3;
display: flex;
flex-flow: row wrap;
align-content: flex-end;
}
#example li {
width: 70px;
height: 70px;
list-style: none;
}
</style>
</head>
<body>
<h2>Align-content: flex-end; example</h2>
<ul id="example">
<li style="background-color:#8ebf42;"></li>
<li style="background-color:#1c87c9;"></li>
<li style="background-color:#666;"></li>
</ul>
</body>
</html>En el siguiente ejemplo, el espacio se distribuye de forma uniforme entre las líneas flex.
Ejemplo de la propiedad align-content con el valor "space-between":
<!DOCTYPE html>
<html>
<head>
<style>
#example {
width: 70px;
height: 300px;
padding: 0;
border: 1px solid #c3c3c3;
display: flex;
flex-flow: row wrap;
align-content: space-between;
}
#example li {
width: 70px;
height: 70px;
list-style: none;
}
</style>
</head>
<body>
<h2>Align-content: space-between; example</h2>
<ul id="example">
<li style="background-color:#8ebf42;"></li>
<li style="background-color:#1c87c9;"></li>
<li style="background-color:#666;"></li>
</ul>
</body>
</html>Resultado
Otro ejemplo con el valor "space-around". Hay un espacio igual entre las líneas flex.
Ejemplo de la propiedad align-content con el valor "space-around":
<!DOCTYPE html>
<html>
<head>
<style>
#example {
width: 70px;
height: 300px;
padding: 0;
border: 1px solid #c3c3c3;
display: flex;
flex-flow: row wrap;
align-content: space-around;
}
#example li {
width: 70px;
height: 70px;
list-style: none;
}
</style>
</head>
<body>
<h2>Align-content: space-around; example</h2>
<ul id="example">
<li style="background-color:#8ebf42;"></li>
<li style="background-color:#1c87c9;"></li>
<li style="background-color:#666;"></li>
</ul>
</body>
</html>Con space-evenly, los espacios antes de la primera línea, entre cada línea y después de la última son todos idénticos — a diferencia de space-around, donde los espacios exteriores son la mitad del tamaño de los interiores.
Ejemplo de la propiedad align-content con el valor "space-evenly":
<!DOCTYPE html>
<html>
<head>
<style>
#example {
width: 70px;
height: 300px;
padding: 0;
border: 1px solid #c3c3c3;
display: flex;
flex-flow: row wrap;
align-content: space-evenly;
}
#example li {
width: 70px;
height: 70px;
list-style: none;
}
</style>
</head>
<body>
<h2>Align-content: space-evenly; example</h2>
<ul id="example">
<li style="background-color:#8ebf42;"></li>
<li style="background-color:#1c87c9;"></li>
<li style="background-color:#666;"></li>
</ul>
</body>
</html>align-content vs. align-items vs. justify-content
Estas tres propiedades se confunden fácilmente porque todas alinean hijos flex:
align-content— alinea las líneas como grupo en el eje transversal. Requiere ajuste de línea y múltiples líneas.align-items— alinea los elementos dentro de una sola línea en el eje transversal. Funciona incluso con una sola línea.justify-content— alinea los elementos a lo largo del eje principal (la dirección en la que fluyen los elementos).
Para un recorrido más detallado sobre cómo encajan estas propiedades, consulta The Ultimate Guide to Flexbox.
Compatibilidad con navegadores
align-content es compatible con todos los navegadores modernos — Chrome, Firefox, Safari, Edge y Opera. Es parte de la especificación estable de Flexbox, por lo que no se necesitan prefijos de proveedor en las versiones actuales.
Valores
| Valor | Descripción | Pruébalo |
|---|---|---|
| stretch | Estira los elementos para que ocupen el contenedor. Es el valor predeterminado de esta propiedad. | Pruébalo » |
| center | Los elementos se colocan en el centro del contenedor. | Pruébalo » |
| flex-start | Los elementos se colocan al inicio del contenedor. | Pruébalo » |
| flex-end | Los elementos se colocan al final del contenedor. | Pruébalo » |
| space-between | Distribuye el espacio de forma uniforme entre las líneas flex. | Pruébalo » |
| space-around | Los elementos se distribuyen con espacio igual entre ellos. | Pruébalo » |
| space-evenly | Distribuye los elementos con espacio igual entre ellos, así como antes del primero y después del último. | Pruébalo » |
| initial | Hace que la propiedad use su valor predeterminado. | Pruébalo » |
| inherit | Hereda la propiedad de su elemento padre. |