fixedAviso siempre visible
Se fija a la ventana del navegador y deja de ocupar espacio en el flujo normal.
position: fixed;
top: 0; left: 0;
Guía visual · CSS
Una lectura guiada del ejemplo original para entender cómo trabajan juntos
fixed, sticky, absolute y
flex en una cabecera hero.
01 — Anatomía
La composición funciona porque cada elemento tiene una referencia y una responsabilidad claras.
fixedSe fija a la ventana del navegador y deja de ocupar espacio en el flujo normal.
position: fixed;
top: 0; left: 0;
stickyAvanza con la página hasta alcanzar el umbral indicado por top.
position: sticky;
top: var(--altura-barra);
absoluteSe coloca tomando como referencia el ancestro posicionado más cercano.
position: absolute;
top: 20px; left: 40px;
flexOrganiza los elementos en una fila o columna y controla su alineación.
display: flex;
justify-content: center;
02 — Vista previa
Desplázate dentro de la ventana. La barra oscura permanece fija, el menú se pega bajo ella y el logo conserva su posición dentro del hero.
03 — Declaraciones clave
Sticky, fixed y absolute son valores de
position; flex es un modo de distribución. En cambio,
hero y logo describen el papel de los elementos, no declaraciones CSS.
fixed
position: fixed saca la barra del flujo normal y la coloca respecto a
la ventana. top: 0 y left: 0 la llevan a la esquina superior;
width: 100% hace que ocupe todo el ancho.
z-index: 1000height: var(...)body padding-topsticky
El menú conserva su espacio. Solo se pega cuando alcanza
top: var(--altura-barra); así se detiene debajo de la barra fija.
position: stickytopz-index: 900
position: relative no desplaza el hero: crea la referencia para el logo
absoluto. overflow: hidden recorta lo que sobresalga y Flexbox centra el contenido.
height: 60vhmin-heightbackground-size: coverbackground-position: centerabsolute
position: absolute saca el logo del flujo. Como el hero está posicionado,
top: 20px y left: 40px se miden desde sus bordes.
width + heightborder-radius: 50%object-fit: covertransform04 — Flexbox
Flexbox organiza los hijos de un contenedor. No los fija a la ventana ni los extrae del flujo: decide cómo se reparten y alinean dentro de su caja.
display: flexConvierte el elemento en contenedor flexible y coloca sus hijos sobre el eje principal.
justify-content: centerCentra los enlaces horizontalmente porque la dirección inicial es una fila.
align-items: centerCentra los hijos en el eje transversal; en una fila, ese eje es vertical.
gap: 2remIntroduce una separación uniforme entre elementos sin márgenes individuales.
05 — Comparación
| Técnica | Referencia | ¿Conserva su espacio? | Uso en el ejemplo |
|---|---|---|---|
fixed | Viewport | No | Barra superior permanente |
sticky | Área de desplazamiento | Sí | Menú que se pega al llegar al umbral |
absolute | Ancestro posicionado | No | Logo superpuesto al hero |
flex | Caja del contenedor | Sí | Centrado del hero, barra y menú |
fixed mira a la ventana; absolute mira a su ancestro posicionado;
sticky mira al desplazamiento y flex mira a los hijos de una caja.
06 — Código completo
Prism identifica etiquetas, atributos, selectores, propiedades y valores. Usa las pestañas para alternar entre los dos archivos.
Cargando HTML…
No se ha podido cargar el código. Abre la página mediante HTTP o HTTPS, no directamente como archivo local.
07 — Comprobación
Por qué la barra fixed exige compensar su altura en el body.
Por qué el menú sticky usa como top la altura de la barra.
Por qué el hero necesita position: relative para controlar el logo.
Qué diferencia existe entre alinear con Flexbox y posicionar con absolute.
Cómo coordinan los valores de z-index las capas superpuestas.