Comprender Display Grid e Inline Grid en CSS

Clase 17 de 28Curso Profesional de CSS Grid Layout

Contenido del curso

Resumen

Comprender cómo funciona la propiedad display en CSS Grid es mucho más que memorizar display: grid. Detrás de esa declaración existe un sistema de dos valores —uno externo y otro interno— que determina cómo se relaciona un elemento con sus vecinos y cómo organiza a sus hijos. Conocer esta lógica marca la diferencia entre aplicar estilos mecánicamente y diseñar layouts con criterio.

¿Qué significa realmente la propiedad display en CSS?

Por definición, display quiere decir desplegar, exhibir o mostrar. En CSS define el tipo de visualización de un elemento y contempla dos facetas [0:42]:

  • Valor externo de visualización (outer): determina cómo se comporta el elemento en relación con los demás elementos del documento.
  • Valor interno de visualización (inner): define cómo se comportan los hijos directos de ese elemento.

Cuando escribimos display: grid, en realidad estamos indicando display: block grid [1:38]. Es decir, por fuera el contenedor se comporta como un elemento bloque (ocupa todo el ancho disponible, acepta margin, padding, width y height), y por dentro organiza a sus hijos con el sistema de grid.

¿Por qué no escribimos las dos palabras clave?

En CSS 2 ya existían valores como inline, block, inline-block o list-item, pero no se manejaba explícitamente la separación en dos palabras clave [4:18]. Cuando CSS 3 incorporó Flexbox y CSS Grid, se mantuvo la misma convención: el valor de bloque viene implícito. Por eso escribimos display: grid y no display: block grid, aunque internamente funcione así [4:42].

¿Cuándo usar display inline grid?

Si necesitas que el contenedor no ocupe todo el ancho y se comporte como un elemento en línea respecto a sus vecinos, usas display: inline-grid [3:15]. La diferencia es únicamente externa:

  • display: grid → comportamiento externo de bloque.
  • display: inline-grid → comportamiento externo en línea.

Por dentro, ambos organizan a sus hijos exactamente igual, con las reglas de CSS Grid.

¿Cómo afecta el flujo normal del documento a los elementos?

Todo elemento HTML trae un display por defecto sin necesidad de agregar CSS [3:30]. Reconocer esto es lo que se conoce como el flujo normal del documento:

  • Elementos de bloque: header, section, footer, encabezados (h1h6), párrafos (p). Ocupan todo el ancho y apilan uno debajo de otro.
  • Elementos en línea: span, input, a. Se colocan uno al lado del otro en la misma línea.
  • Elementos inline-block: como el button, combinan comportamiento en línea con la capacidad de recibir dimensiones.

Sin agregar ningún estilo, cada etiqueta se posiciona según su display nativo. Entender esto antes de aplicar grid o flex permite predecir el resultado visual.

¿Qué características distinguen a los elementos bloque de los elementos en línea?

Un elemento con comportamiento de bloque puede recibir las siguientes propiedades sin restricciones [2:06]:

  • width y height personalizados.
  • margin en las cuatro direcciones.
  • padding en las cuatro direcciones.

Los elementos en línea, en cambio, presentan limitaciones importantes: no respetan width ni height, y el margin vertical no empuja a los demás elementos. Esta diferencia es crucial al decidir si tu contenedor grid debe ser bloque o en línea.

La tabla de equivalencias entre el valor único y los valores de dos palabras clave lo resume así [5:06]:

  • inlineinline flow (caja en línea con flujo normal interior).
  • flexblock flex.
  • gridblock grid.
  • inline-gridinline grid.

Con esta base clara sobre cómo operan los valores externos e internos de display, el siguiente paso es construir contenedores reales trabajando con filas, columnas y espaciados. ¿Puedes identificar qué propiedades aceptan los elementos en línea que no aceptan los de bloque y viceversa? Comparte tu respuesta en los comentarios.