Inicio › Herramientas para desarrolladores › Generador de Flexbox CSS

Generador de Flexbox CSS

Experimenta con todas las propiedades de flexbox en un diseño en tiempo real, haz clic en cualquier elemento para ajustar su flex-grow, shrink, basis, order o align-self, y copia CSS y HTML limpios. Funciona por completo en tu navegador.

Última actualización:

Predefinidos

Contenedor

Elemento 1

CSS

HTML

Publicidad

Cómo usar Generador de Flexbox CSS

  1. Elige un ajuste predefinido o empieza con la fila básica de cuatro elementos.
  2. Configura el contenedor: elige flex-direction, wrap, justify-content, align-items y los espacios, y observa cómo se actualiza la vista previa.
  3. Haz clic en un elemento de la vista previa para seleccionarlo y cambia su flex-grow, flex-shrink, flex-basis, order o align-self.
  4. Añade o elimina elementos para probar cómo se comporta el diseño con más contenido.
  5. Pulsa Copiar CSS y Copiar HTML para usar el diseño en tu proyecto.

Chuleta de flexbox

PropiedadSe aplica aPredeterminadoQué controla
flex-directionContenedorrowEje principal: row, row-reverse, column o column-reverse
flex-wrapContenedornowrapSi los elementos pueden pasar a nuevas líneas
justify-contentContenedornormal (actúa como flex-start)Espaciado de los elementos a lo largo del eje principal
align-itemsContenedornormal (actúa como stretch)Posición de los elementos en el eje transversal
align-contentContenedornormal (actúa como stretch)Espaciado de las líneas ajustadas en el eje transversal
gapContenedor0Espacio entre elementos (row-gap y column-gap)
flex-growElemento0Parte del espacio libre que ocupa el elemento
flex-shrinkElemento1Cuánto se encoge el elemento cuando falta espacio
flex-basisElementoautoTamaño inicial antes de crecer o encogerse
orderElemento0Orden visual (el menor va primero)
align-selfElementoautoSustituye a align-items para un elemento

Ejemplo práctico: cómo reparte el espacio flex-grow

Una fila de 900px de ancho contiene tres elementos con flex-basis: 200px y sin gap. Sus bases suman 600px, lo que deja 300px de espacio libre. Si los elementos tienen valores de flex-grow de 1, 1 y 1, cada uno recibe 300 ÷ 3 = 100px extra y termina con 300px de ancho. Con valores 2, 1 y 0, el espacio libre se divide en 3 partes de 100px: el primer elemento pasa a medir 200 + 200 = 400px, el segundo 200 + 100 = 300px y el tercero se queda en 200px.

Encoger funciona al revés, pero ponderado por el tamaño: cuando los elementos desbordan, cada uno se encoge en proporción a flex-shrink × flex-basis, así que los elementos más grandes ceden más espacio. Pon flex-shrink: 0 en todo lo que deba conservar su tamaño, como una barra lateral fija.

Formas abreviadas comunes de flex

Forma abreviadaEquivale aÚsala para
flex: initial0 1 autoLa predeterminada: tamaño según el contenido, puede encogerse
flex: 11 1 0%Columnas del mismo ancho
flex: auto1 1 autoCrecer a partir del tamaño del contenido
flex: none0 0 autoTamaño fijo que nunca crece ni se encoge
flex: 0 0 200px0 0 200pxBarra lateral fija de 200px

¿Necesitas filas y columnas a la vez? Un diseño grid es la mejor herramienta para plantillas de página completas. Ordena el código final con el Formateador CSS y el Formateador HTML.

Preguntas frecuentes

¿Cuál es la diferencia entre justify-content y align-items?

justify-content distribuye los elementos a lo largo del eje principal (horizontalmente con flex-direction: row), y align-items los coloca en el eje transversal (verticalmente en una fila). Al cambiar a flex-direction: column, los ejes se intercambian.

¿Cuándo tiene efecto align-content?

Solo cuando el contenedor tiene flex-wrap: wrap (o wrap-reverse), los elementos realmente se reparten en más de una línea y sobra espacio en la dirección transversal. Coloca las líneas como un grupo, igual que justify-content hace con los elementos.

¿Qué significa flex: 1?

flex: 1 es la forma abreviada de flex-grow: 1, flex-shrink: 1, flex-basis: 0%. Cada elemento con flex: 1 parte de un ancho cero y reparte el espacio libre a partes iguales, que es como se crean columnas del mismo ancho.

¿Cuál es la diferencia entre flex-basis y width?

flex-basis define el tamaño inicial del elemento a lo largo del eje principal antes de repartir el espacio libre, y tiene prioridad sobre width en una fila (o sobre height en una columna). flex-basis: auto recurre al width del elemento o al tamaño de su contenido.

¿Cómo centro un div con flexbox?

Dale al padre display: flex, justify-content: center y align-items: center, y una altura. El hijo queda centrado horizontal y verticalmente. El ajuste Centrado perfecto genera exactamente eso.

¿La propiedad order afecta a la accesibilidad?

Sí. order solo cambia el orden visual; los lectores de pantalla y el orden de tabulación del teclado siguen el código HTML. Úsala para pequeños ajustes visuales y cambia el orden del HTML cuando importe el orden de lectura.

¿Debo usar flexbox o CSS grid?

Usa flexbox para diseños unidimensionales en los que los elementos fluyen en una fila o una columna (barras de navegación, barras de herramientas, filas de tarjetas, centrado). Usa CSS grid para diseños bidimensionales en los que controlas filas y columnas a la vez, como plantillas de página.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Herramientas web, HTML y CSS →