Posicionamiento: relative, absolute, fixed y sticky
Saque elementos del flujo normal con valores de position para superponer contenido, fijar headers y crear sidebars sticky.
Posicionamiento: relative, absolute, fixed y sticky es una lección gratuita de Frontend Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Frontend Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Frontend Academy incluye 4 lecciones en total.
Flujo normal del documento
De forma predeterminada, los elementos siguen el flujo normal del documento: los elementos de bloque se apilan verticalmente y los elementos en línea fluyen horizontalmente dentro del texto. La propiedad position permite salir de este flujo para crear superposiciones, encabezados fijos e información sobre herramientas.
position: static (predeterminado)
Todos los elementos comienzan con position: static. Esto significa que se posicionan mediante el flujo normal del documento. Las propiedades top, right, bottom y left no tienen efecto en los elementos estáticos.
position: relative
position: relative mantiene el elemento en el flujo normal, pero permite desplazarlo de su posición original mediante top, right, bottom y left. Lo más importante es que crea un contexto de posicionamiento para los elementos descendientes con posicionamiento absoluto.
.card {
position: relative;
top: 10px; /* shift 10px down from original position */
left: -5px; /* shift 5px left */
}position: absolute
position: absolute elimina el elemento del flujo normal. Se posiciona en relación con su ancestro posicionado más cercano (cualquier posición distinta de static). Si no existe ningún ancestro posicionado, se posiciona en relación con el viewport.
.card {
position: relative; /* creates context */
}
.card .badge {
position: absolute;
top: 12px;
right: 12px; /* top-right corner of .card */
}La propiedad z-index
Los elementos posicionados pueden superponerse. Use z-index para controlar el orden de apilamiento. Un z-index más alto queda por encima. Solo funciona en elementos posicionados (no en static). Crea un nuevo contexto de apilamiento.
.tooltip {
position: absolute;
z-index: 100; /* above other content */
}
.modal {
position: fixed;
z-index: 1000; /* above tooltip */
}position: fixed
position: fixed elimina el elemento del flujo normal y lo fija al viewport. No se desplaza con la página. Es perfecto para encabezados fijos, botones de acción flotantes y banners de cookies.
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 64px;
background: white;
z-index: 50;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}position: sticky
position: sticky es un comportamiento híbrido: el elemento se desplaza con la página hasta alcanzar un umbral (definido con top/bottom); entonces queda fijo. Es útil para los encabezados de sección de tablas largas o para barras laterales que se fijan después del encabezado.
.sidebar {
position: sticky;
top: 80px; /* sticks 80px from top after scroll */
align-self: flex-start;
}Centrado con position: absolute
Una técnica clásica consiste en combinar position: absolute; top: 50%; left: 50% con transform: translate(-50%, -50%) para centrar perfectamente un elemento en su elemento principal posicionado.
.modal {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 480px;
background: white;
border-radius: 12px;
}overflow: hidden recorta los elementos secundarios absolutos
De forma predeterminada, un elemento secundario con posicionamiento absoluto puede desbordar los límites de su elemento principal. Añadir overflow: hidden al elemento principal recorta todo lo que queda fuera de su cuadro, lo que resulta útil para efectos en imágenes de tarjetas y para recortar insignias.
Trampa: contextos de apilamiento no deseados
Algunas propiedades crean contextos de apilamiento involuntariamente: transform, filter, isolation: isolate. Esto puede provocar conflictos con z-index: un elemento con z-index: 9999 puede seguir detrás de otro porque está dentro de un contexto de apilamiento inferior.
Cuándo usar cada tipo de posicionamiento
relative: desplazamientos y contexto de posicionamiento. absolute: insignias, información sobre herramientas y superposiciones en relación con un elemento principal. fixed: encabezados persistentes, modales y notificaciones emergentes. sticky: encabezados de sección y navegación lateral que acompaña al desplazamiento. Evite position para crear diseños; use Flex o Grid.
Comprobación rápida
Un elemento tiene position: absolute; top: 0; right: 0;. ¿Dónde aparecerá si su elemento principal tiene position: relative?
Repaso: posicionamiento en CSS
static es el valor predeterminado. relative aplica desplazamientos sin sacar el elemento del flujo y crea un contexto de posicionamiento. absolute saca el elemento del flujo y lo posiciona respecto al ancestro posicionado más cercano. fixed fija el elemento al viewport. sticky se desplaza y después queda fijo. Use z-index para controlar el orden de superposición.
Preguntas frecuentes
¿La lección «Posicionamiento: relative, absolute, fixed y sticky» es gratis?
Sí — el texto completo de «Posicionamiento: relative, absolute, fixed y sticky» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Frontend Academy, actualiza a CoddyKit PRO. El curso de Frontend Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Posicionamiento: relative, absolute, fixed y sticky»?
Saque elementos del flujo normal con valores de position para superponer contenido, fijar headers y crear sidebars sticky. Practicas Frontend Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Frontend Academy?
No se requiere experiencia previa. Frontend Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Posicionamiento: relative, absolute, fixed y sticky»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Frontend Academy?
Sí. Cada lección de Frontend Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Selectores y cascada
- Colores, tipografía y modelo de cajas
- Conceptos básicos de display: block, inline, flex y grid
- Posicionamiento: relative, absolute, fixed y sticky