Display y position: controla el flujo y la posición de tus elementos

Aprende a dominar el flujo del documento con display y a ubicar elementos con position sin romper el layout.

display define cómo participa una caja en el flujo (block, inline, inline-block, flex, grid).

position permite mover un elemento sin cambiar su orden en el HTML.

relative crea un contexto para absolute y permite pequeños ajustes sin romper el layout.

fixed y sticky son ideales para barras y elementos persistentes.

  • Define si un elemento fluye como bloque, texto o tarjeta.
  • block ocupa todo el ancho disponible y genera salto de línea.
  • inline fluye con el texto y no acepta width/height.
  • inline-block combina ambos: fluye como texto, pero admite tamaño y padding.
  • display: none elimina el elemento del flujo y del layout.

display: el comportamiento base de la caja

Define si un elemento fluye como bloque, texto o tarjeta.

block ocupa todo el ancho disponible y genera salto de línea.

inline fluye con el texto y no acepta width/height.

inline-block combina ambos: fluye como texto, pero admite tamaño y padding.

display: none elimina el elemento del flujo y del layout.

  • Usa block para secciones completas.
  • Usa inline-block para badges o botones alineados.
  • Evita display: none si necesitas transiciones (usa visibility + opacity).

position: mover sin perder el orden

Cada modo responde a reglas distintas.

static es el valor por defecto: el navegador coloca el elemento según el flujo.

relative desplaza el elemento respecto a su posición original, sin afectar a los demás.

absolute sale del flujo y se posiciona respecto a su ancestro con position definido.

fixed se queda pegado al viewport y no se mueve con el scroll.

Capas y z-index

El orden de apilamiento no siempre es obvio.

z-index solo funciona en elementos posicionados (relative, absolute, fixed, sticky).

Ciertos estilos crean contextos de apilamiento nuevos (position + z-index, transform, opacity).

Si algo no se ve, revisa si otro elemento está en una capa superior.

  • Define z-index de forma escalonada (10, 20, 30).
  • Evita valores gigantes si no hacen falta.

Ayudas para controlar el flujo

Pequeños ajustes que evitan problemas comunes.

overflow controla si el contenido desborda o se recorta.

visibility: hidden oculta sin romper el layout.

Usa min-height para evitar saltos cuando el contenido crece.

CSS
13

Display y position: controla el flujo y la posición de tus elementos

Aprende a dominar el flujo del documento con display y a ubicar elementos con position sin romper el layout.

Código del tema: position: sticky; top: 0;

📘 Teoría

display: el comportamiento base de la caja

Define si un elemento fluye como bloque, texto o tarjeta.

block ocupa todo el ancho disponible y genera salto de línea.

inline fluye con el texto y no acepta width/height.

inline-block combina ambos: fluye como texto, pero admite tamaño y padding.

display: none elimina el elemento del flujo y del layout.

  • Usa block para secciones completas.
  • Usa inline-block para badges o botones alineados.
  • Evita display: none si necesitas transiciones (usa visibility + opacity).
Comparación rápida
.block { display: block; width: 100%; }
.inline { display: inline; }
.inline-block { display: inline-block; padding: 6px 10px; }
.hidden { display: none; }

position: mover sin perder el orden

Cada modo responde a reglas distintas.

static es el valor por defecto: el navegador coloca el elemento según el flujo.

relative desplaza el elemento respecto a su posición original, sin afectar a los demás.

absolute sale del flujo y se posiciona respecto a su ancestro con position definido.

fixed se queda pegado al viewport y no se mueve con el scroll.

sticky se comporta como relative hasta llegar a un punto, donde se fija.

Absolute dentro de un contenedor
.card {
  position: relative;
  padding: 20px;
  border-radius: 12px;
}

.badge {
  position: absolute;
  top: 12px;
  right: 12px;
}

Capas y z-index

El orden de apilamiento no siempre es obvio.

z-index solo funciona en elementos posicionados (relative, absolute, fixed, sticky).

Ciertos estilos crean contextos de apilamiento nuevos (position + z-index, transform, opacity).

Si algo no se ve, revisa si otro elemento está en una capa superior.

  • Define z-index de forma escalonada (10, 20, 30).
  • Evita valores gigantes si no hacen falta.
Stacking simple
.overlay { position: fixed; z-index: 30; }
.header { position: sticky; top: 0; z-index: 20; }
.card { position: relative; z-index: 1; }

Ayudas para controlar el flujo

Pequeños ajustes que evitan problemas comunes.

1

overflow controla si el contenido desborda o se recorta.

2

visibility: hidden oculta sin romper el layout.

3

Usa min-height para evitar saltos cuando el contenido crece.

Overflow y visibilidad
.panel {
  height: 180px;
  overflow: hidden;
}

.panel.is-hidden {
  visibility: hidden;
}

🧭 Visuales clave

Como funciona position

Aterriza visualmente que sistema de referencia usa cada valor de position.

Comparativa de position static, relative, absolute, fixed y sticky.

🧪 Aprende probando

Ejemplo Demo visual: static y flujo normal Observa cómo `static` respeta el flujo del documento y por qué `top` o `left` no hacen nada en ese modo.
Ejemplo Fila con inline-block Convierte tarjetas en una fila sin Flexbox.
Ejemplo Badge absoluto en tarjeta Aprende a usar relative + absolute.
Ejemplo Header sticky Una barra que se queda visible al hacer scroll.

🏁 Retos

Reto Reto: tooltip flotante Posiciona un tooltip respecto al botón.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre CSS.

Test de CSS

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .