Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Índice
1. ¿Para qué sirve CSS Flexbox? (paginas-web/creacion-de-paginas-web/css-flexbox/#c244020)
2. Flexbox: tutorial para principiantes (paginas-web/creacion-de-paginas-web/css-flexbox/#c244021)
El flexbox (más concretamente, CSS Flexible Box Layout o diseño de caja flexible CSS) funciona de manera
más inteligente y dinámica: el diseño se adapta de forma flexible a la pantalla donde se muestra, siguiendo
el concepto del diseño receptivo. El espacio se llena o los elementos se desplazan de modo que todo
permanezca visible. Para lograrlo sin desmantelar el diseño por completo, flexbox funciona con dos ejes: el
eje principal, que suele ser el horizontal, y el eje transversal o vertical. Mediante estos ejes, los elementos
se organizan dentro de la caja y se distribuyen en relación unos con otros. Una vez hecho esto, CSS Flexbox
no tiene más que garantizar que el espacio que hay alrededor de estos elementos se llene correctamente.
Cualquiera que se dedique a diseñar páginas web actualmente debería aprender a utilizar CSS Flexbox,
porque esta tecnología facilita mucho el trabajo con tamaños de pantalla variables y, gracias a su
estructura, permite lograr resultados muy atractivos con solo unas pocas líneas de código.
Nota
Otra de las innovaciones que se introdujeron con CSS3 se denomina CSS Grid (paginas-web/creacion-
de-paginas-web/css-grid-layout/), una tecnología que ofrece a los diseñadores web otras formas de
distribuir objetos en la pantalla.
Flexbox se basa en un contenedor flexible (flex container), que a su vez contiene varios elementos flexibles
(flex items). El contenedor otorga sus propiedades a los elementos, es decir: los elementos o flexboxes
deben su flexibilidad al hecho de estar dentro del contenedor.
Cada uno de los dos ejes sigue una dirección: por lo general, el eje principal va de izquierda a derecha,
mientras que el eje transversal va de arriba a abajo. Flexbox se describe como un sistema unidimensional:
los elementos se pueden organizar en filas o columnas, y nunca se pretende combinar ambas. Por
ejemplo, si te decides por la disposición en filas (la estándar de esta tecnología), CSS Flexbox intentará
organizar todos los elementos en una sola fila, aunque también es posible evitarlo y forzar un salto de
línea.
Nota
En el siguiente ejemplo, escribimos el código CSS directamente en el encabezado (<head>) del
documento HTML. En su lugar, también puedes crear tu propio archivo de hoja de estilo e insertarlo
en el encabezado.
Antes de comenzar a organizar los elementos, primero debes crearlos. La forma de hacerlo es mediante
HTML, como de costumbre:
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 2/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
1 <!DOCTYPE html>
2 <html>
3 <head>
4 </head>
5 <body>
6 <div class="flex-container">
10 </div>
11
12 </body>
13 </html>
Los tres elementos se mostrarían simplemente uno debajo del otro. Ahora, utilizamos CSS para
distribuirlos en el eje principal:
1 <style>
2 .flex-container {
3 display: flex;
4 background-color: grey;
5 }
6 .flex-item {
7 background-color: white;
8 width: 200px;
9 margin: 10px;
10 text-align: center;
11 line-height: 100px;
12 font-size: 50px;
13 }
14 </style>
(fileadmin/DigitalGuide/Screenshots_2020/flexbox-1.png)
Con CSS y HTML, las flexboxes pueden generarse rápidamente.
En esta hoja de estilo, se ha definido el contenedor. La propiedad display: flex habilita la flexbox. Los
elementos se distribuyen de izquierda a derecha, ya que no lo hemos definido de otra manera. También es
posible hacerlo mediante cinco opciones distintas, configurables con el comando justify-content:
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 3/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
El resto del código hasta este punto solo es estético y no tiene nada que ver con las cajas flexibles en sí.
El modelo CSS Flexbox parte de la alineación horizontal, aunque también es posible organizar los
elementos en una columna. Además, se puede invertir la dirección, de izquierda a derecha o de abajo a
arriba. Para ello, se utiliza el comando flex-direction:
El comando justify-content: flex-end no es igual que flex-direction: row-reverse. Mientras que en el primero
se ajusta el último elemento al borde derecho, en el segundo, se cambia el orden completamente, lo que
significa que el primer elemento del código aparece en el borde derecho.
Agrupar elementos
Hasta ahora, hemos colocado las cajas flexibles de manera uniforme. No obstante, en diseño web, no
siempre deseamos que todos los elementos se distribuyan por igual. Por ejemplo, a veces queremos que el
texto se muestre de manera diferente a una imagen. Para lograrlo, podemos agrupar los elementos en el
texto HTML:
1 <div class="flex-container">
3 <div class="flex-item">
6 </div>
7 </div>
(fileadmin/DigitalGuide/Screenshots_2020/flexbox-2.png)
Puedes anidar varios objetos en una flexbox ordenándolos en el documento HTML.
Desplazamiento vertical
Con justify-content, los elementos se pueden distribuir con una cierta relación entre sí en el eje horizontal.
En cambio, si quieres que el contenido se muestre de arriba a abajo (en el eje transversal), necesitarás el
comando align-items. En este caso, también hay cinco opciones distintas:
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 4/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
A primera vista, las opciones flex-start y baseline parecen ofrecer los mismos resultados, pero presentan
una diferencia que se hace especialmente evidente cuando los objetos están anidados: mientras que flex-
start solo vincula dos flexboxes que están en el mismo nivel jerárquico, baseline también tiene en cuenta el
contenido que hay en las cajas.
Con el siguiente código, se pueden centrar tres objetos de diferentes tamaños uno al lado del otro:
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 5/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <style>
5 .flex-container {
6 display: flex;
7 background-color: grey;
8 justify-content: center;
9 align-items: center;
10 }
11 .flex-item1 {
12 background-color: white;
13 width: 200px;
14 margin: 10px;
15 text-align: center;
16 line-height: 100px;
17 font-size: 50px;
18 }
19 .flex-item2 {
20 background-color: blue;
21 width: auto;
22 margin: 10px;
23 text-align: center;
24 line-height: 100px;
25 font-size: 50px;
26 }
27 .flex-item3 {
28 background-color: grey;
29 width: 200px;
30 margin: 10px;
31 text-align: center;
32 line-height: 100px;
33 font-size: 50px;
34 </style>
35 </head>
36 <body>
37 <div class="flex-container">
39 <div class="flex-item2">
42 </div>
44 </div>
45 </body>
46 </html>
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 6/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
(fileadmin/DigitalGuide/Screenshots_2020/flexbox-3.png)
Con CSS Flexbox puedes decidir el aspecto de la alineación vertical de los diferentes elementos.
La distribución vertical también puede modificarse mediante saltos de línea. Si colocaras muchos objetos
en un contenedor, sencillamente se seguirían mostrando en formato horizontal, de modo que el usuario
tendría que desplazarse y salir del área de la pantalla para verlos. Con flex-wrap, te aseguras de que los
elementos se distribuyen de forma ordenada en varias líneas.
1 .flex-container {
2 display: flex;
3 background-color: grey;
4 justify-content: center;
5 align-items: center;
6 flex-wrap: wrap-reverse;
7 }
Hasta ahora, la disposición siempre se ha aplicado a todo el contenedor, de manera que todas las cajas
incluidas dentro del mismo siguen los comandos generales. Esto facilita el trabajo, pero, al mismo tiempo,
también lo limita. Por este motivo, CSS Flexbox ofrece a los diseñadores web la oportunidad de definir
excepciones. Para ello, se utiliza el comando order. El valor predeterminado (si el usuario no define otro) es
0. El valor añade el objeto a un grupo abstracto: todos los elementos que hemos creado hasta ahora
pertenecen al mismo grupo, porque todos tienen el valor 0. Partiendo de este valor, ahora puedes mover
cada objeto hacia adelante (-1) o hacia atrás (1).
Si dejas todos los elementos en valor 0 excepto uno al que le des el valor 1, este objeto se mostrará
después del resto de elementos. El objeto también puede desplazarse asignándole otros valores
(superiores o inferiores). Ten en cuenta que se trata de una representación puramente visual: la secuencia
lógica de acuerdo con el documento HTML no cambia.
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 7/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <style>
5 .flex-container {
6 display: flex;
7 background-color: grey;
8 justify-content: center;
9 align-items: center;
10 flex-direction: row;
11 }
12 .flex-item1 {
13 background-color: white;
14 width: 200px;
15 margin: 10px;
16 text-align: center;
17 line-height: 100px;
18 font-size: 50px;
19 }
20 .flex-item2 {
21 background-color: white;
22 width: 200px;
23 margin: 10px;
24 text-align: center;
25 line-height: 100px;
26 font-size: 50px;
27 order: -1;
28 }
29 </style>
30 </head>
31 <body>
32 <div class="flex-container">
36 </div>
37 </body>
38 </html>
(fileadmin/DigitalGuide/Screenshots_2020/flexbox-4.png)
Puedes dejar que CSS Flexbox se encargue de la disposición de los objetos o modificarla personalmente.
De momento solo hemos hablado de la disposición flexible de los objetos. En todos los casos, las
relaciones de tamaño se han establecido mediante el CSS clásico en el código de muestra. No obstante, las
flexboxes también pueden adaptarse en tamaño. Para ello, se utiliza el comando flex. De forma parecida al
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 8/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
orden, los elementos pueden dividirse en grupos; cuanto mayor es el valor, más espacio ocupa el
elemento.
1 .flex-container {
2 display: flex;
3 background-color: grey;
4 justify-content: center;
5 align-items: center;
6 flex-direction: row;
7 }
8 .flex-item1 {
9 background-color: white;
10 width: 200px;
11 margin: 10px;
12 text-align: center;
13 line-height: 100px;
14 font-size: 50px;
15 }
16 .flex-item2 {
17 background-color: white;
18 width: 200px;
19 margin: 10px;
20 text-align: center;
21 line-height: 100px;
22 font-size: 50px;
23 flex: 1;
24 }
De hecho, flex es una forma abreviada del comando, que contiene tres instrucciones: flex-grow, flex-shrink
y flex-basis. Así, puedes introducir los valores individuales directamente en forma abreviada (flex: <flex-
grow> <flex-shrink> <flex-basis> / flex: 1 1 20em) o determinar un solo valor y dejar que CSS se encargue
de la configuración.
(fileadmin/DigitalGuide/Screenshots_2020/flexbox-5.png)
CSS Flexbox también permite configurar las relaciones de tamaño entre los objetos.
En resumen
Utilizar CSS Flexbox puede ahorrarnos mucho trabajo. De entrada, las cajas flexibles se distribuyen
automáticamente en la página, aunque CSS deja mucho margen al diseñador web para modificar y
adaptar la disposición.
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 9/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
12.10.20 | Creación de páginas web (paginas-web/creacion-de-paginas-web/)
g
de-p
s.es os.e w.io
w io
CSS (tags/css/)
Artículos similares
(paginas-web/diseno-web/consejos-y-trucos-css-que-debes-conocer/)
Actualmente, el lenguaje de las hojas de estilo CSS es una de las herramientas de diseño web más
importantes. Este permite separar el contenido del diseño de una web y se encuentra en
constante desarrollo gracias a los esfuerzos del Word Wide Web Consortium (W3C). Los snippets
CSS facilitan de manera significativa el diseño de páginas web, asumiendo, incluso, funciones de
programas como Photoshop...
g
s.es ejos os.e w.io
onse w.io onse ejos
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 10/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
(paginas-web/diseno-web/que-es-css-un-tutorial-con-lo-que-necesitas-saber/)
Sin CSS, las páginas web solo serían un compendio de elementos de texto con epígrafes y títulos
divididos en secciones. Es únicamente gracias a las posibilidades que ofrece el lenguaje de hojas
de estilo para formatear HTML que la World Wide Web es lo que es: una colorida mezcla de
proyectos web personalizados, desde la pequeña página web creada por aficionados hasta la
premiada web de diseño. De...
es-cs g
s.es eces os.e w.io
e-es w ion e-es es-cs
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 11/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
(paginas-web/desarrollo-web/less-css-tutorial/)
CSS es uno de los lenguajes más importantes de la World Wide Web. No obstante, trabajar con
este lenguaje de stylesheet suele resultar tedioso, por lo que muchos desarrolladores prefieren
usar Less. Este preprocesador de CSS no solo simplifica la escritura en lenguaje de hoja de estilo,
sino que le añade útiles elementos como variables, funciones o mixins. Para saber cómo funciona,
consulta...
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 12/13
25/8/22, 14:50 Flexbox: tutorial y descripción de CSS Flexbox - IONOS
(paginas-web/diseno-web/css-media-queries/)
¿En qué consisten las CSS Media Queries? Explicamos cómo se relacionan las Media Queries y el
diseño responsivo y abordamos varios temas relacionados: desde breakpoints y las unidades
relativas de CSS hasta los procesadores de CSS y los modernos CSS Utility Frameworks.
Finalmente podrás disponer de una visión completa.
Productos asociados
MyWebsite
Ver tarifas
Ver packs
Artículos Favoritos
s.ly/
.ly/I
ly/
os.l
-fee
uid
https://www.ionos.es/digitalguide/paginas-web/creacion-de-paginas-web/css-flexbox/ 13/13