Curso de tailwind CSS
Introducción a Flexbox
Flexbox es una técnica de diseño en CSS que permite alinear y distribuir elementos dentro de un contenedor de forma flexible. Tailwind CSS facilita el uso de Flexbox con clases simples y descriptivas.
¿Por qué usar Flexbox?
- Alineación y distribución fácil de elementos
- Ideal para crear layouts dinámicos
- Permite alinear vertical y horizontalmente con facilidad
Activar Flexbox en Tailwind
Para empezar a usar Flexbox en Tailwind, solo tienes que añadir la clase flex al contenedor.
1<div class="flex">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>1. Dirección del Contenedor (flex-row, flex-col, flex-row-reverse, flex-row-reverse)
Puedes definir si los elementos deben alinearse horizontalmente (por defecto) o verticalmente.
- Horizontal:
flex-row
1<div class="flex flex-row">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4</div>- Vertical:
flex-col
1<div class="flex flex-col">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4</div>- Horizontal:
flex-row-reverse
1<div class="flex flex-row-reverse">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4</div>- Vertical:
flex-col-reverse
1<div class="flex flex-col-reverse">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4</div>2. Alineación en el eje principal (justify-start, justify-center, justify-end, justify-between, justify-around, justify-evenly)

Alinea los elementos dentro del contenedor flex en el eje principal (main axis).
- justify-start: alinea los elementos al inicio.
1<div class="flex justify-start">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- justify-center: alinea los elementos al centro.
1<div class="flex justify-center">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- justify-end: alinea los elementos al final.
1<div class="flex justify-end">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- justify-between: espacio entre los elementos.
1<div class="flex justify-between">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- justify-around: espacio alrededor de cada elemento.
1<div class="flex justify-around">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- justify-evenly: espacio igual entre cada elemento.
1<div class="flex justify-evenly">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>3. Alineación en eje cruzado (items-start, items-center, items-end, items-stretch, items-baseline)

Alinea los elementos en el eje cruzado (cross axis) del contenedor flex.
- items-start: alinea los elementos al inicio.
1<div class="h-screen flex items-start">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500 text-3xl">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- items-center: alinea los elementos al centro.
1<div class="h-screen flex items-center">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500 text-3xl">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- items-end: alinea los elementos al final.
1<div class="h-screen flex items-end">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500 text-3xl">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- items-stretch: estira los elementos para llenar el contenedor.
1<div class="h-screen flex items-stretch">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500 text-3xl">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>- items-baseline: alinea los elementos en su línea de base.
1<div class="h-screen flex items-baseline">
2 <div class="p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500 text-5xl">Elemento 2</div>
4 <div class="p-4 bg-red-500">Elemento 3</div>
5</div>4. Control del Tamaño de los Elementos (flex-grow, flex-shrink, flex-auto, flex-none)
Controla el crecimiento y reducción de los elementos dentro del contenedor.
- flex-grow: permite que un elemento crezca para ocupar espacio disponible.
1<div class="flex">
2 <div class="flex-grow p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4</div>- flex-shrink: permite que un elemento se encoja si es necesario.
1<div class="flex">
2 <div class="p-4 bg-green-500">Elemento 1</div>
3 <div class="flex-shrink p-4 bg-blue-500">Elemento 2</div>
4 <div class="p-4 bg-green-500">Elemento 3</div>
5</div>- flex-auto: crece y se reduce según sea necesario.
1<div class="flex">
2 <div class="flex-auto p-4 bg-blue-500">Elemento 1</div>
3 <div class="p-4 bg-green-500">Elemento 2</div>
4</div>- flex-none: evita que el elemento crezca o se encoja.
1<div class="flex">
2 <div class="flex-none p-4 bg-blue-500">Elemento 1</div>
3 <div class="flex-grow p-4 bg-green-500">Elemento 2</div>
4</div>5. Orden de los Elementos (order-1, order-2, order-last, etc.)
Puedes cambiar el orden de los elementos sin modificar el HTML.
1<div class="flex">
2 <div class="order-2 p-4 bg-blue-500">Elemento 1</div>
3 <div class="order-1 p-4 bg-green-500">Elemento 2</div>
4 <div class="order-3 p-4 bg-red-500">Elemento 3</div>
5</div>Ejemplo Completo: Layout con Flexbox
Apliquemos todo en un ejemplo donde distribuimos elementos de un layout de manera flexible:
1<div class="flex flex-col h-screen">
2 <header class="p-4 bg-blue-500 text-white">Header</header>
3 <div class="flex flex-grow">
4 <aside class="flex-none w-1/4 p-4 bg-green-500 text-white">Sidebar</aside>
5 <main class="flex-grow p-4 bg-gray-200">Contenido Principal</main>
6 <aside class="flex-none w-1/4 p-4 bg-green-500 text-white">Sidebar</aside>
7 </div>
8 <footer class="p-4 bg-blue-500 text-white">Footer</footer>
9</div>En este ejemplo, usamos flex y flex-grow para distribuir el contenido principal y los aside en un layout que se adapta a la altura de la pantalla (h-screen).
- Loading...
Usando tailwind y flexbox, haz que las cajas se pongan una debajo de otra
Loading...Usando tailwind y flexbox, coloca el botón en el centro de la sección
Loading...