Float (flotante)Hacer que el contenido fluya alrededor de un elemento
La propiedad float permite que un elemento «flote» a la izquierda o la derecha, y el contenido que lo sigue se distribuya a su alrededor:
Clearfix
Cuando los elementos flotan, el contenedor padre puede «colapsar» (perder su altura). Se soluciona con clear o el truco del clearfix:
Nota: Float se usaba mucho para maquetación antes de Flexbox y Grid. Hoy en día se recomienda Flexbox para la mayoría de los layouts.
PositionCómo se posiciona un elemento
La propiedad position controla cómo se posiciona un elemento:
- static (por defecto) — El elemento sigue el flujo normal del documento.
- relative — El elemento se posiciona relativo a su posición normal. Se puede mover con
top,right,bottom,left, pero su espacio original se conserva. - absolute — El elemento se saca del flujo y se posiciona relativo a su ancestro posicionado más cercano (o al
<body>si no hay ninguno). - fixed — El elemento se posiciona relativo a la ventana del navegador. No se mueve al hacer scroll.
Ejemplos
Columnas con inline-blockLayout sencillo sin Flexbox
Se pueden crear columnas sencillas con display: inline-block:
Atención: Con inline-block, los espacios en blanco del HTML (saltos de línea, espacios entre etiquetas) crean pequeños huecos entre los elementos. Flexbox no tiene este problema.
Introducción a FlexboxSistema de maquetación moderno y flexible
Propiedades del contenedor flex
| Propiedad | Valores | Descripción |
|---|---|---|
display | flex | Activa Flexbox |
flex-direction | row, column | Dirección del eje principal |
justify-content | flex-start, center, flex-end, space-between, space-around, space-evenly | Alineación en el eje principal |
align-items | flex-start, center, flex-end, stretch, baseline | Alineación en el eje cruzado |
flex-wrap | nowrap, wrap | Permite pasar a la siguiente línea |
gap | longitud | Espacio entre elementos |
Flexbox PlaygroundCambia las propiedades y observa el resultado
Ejercicio prácticoAplica lo aprendido
- Crea un menú de navegación horizontal usando Flexbox con una lista
<ul>ydisplay: flex. - Añade una imagen de perfil flotante con
float: leftseguida de un párrafo de texto que la rodee. - Crea un layout de dos columnas con
display: inline-blockywidth: 45%. - Crea una barra de navegación fija con
position: fixedque permanezca en la parte superior al hacer scroll. - Recuerda añadir
margin-topal<body>o al primer elemento para compensar la barra fija. - Experimenta con
justify-content: space-betweenyspace-arounden un contenedor flex.