Cada elemento de una página web es un cuadro rectangular. La propiedad de visualización en CSS determina cómo se comporta esa caja rectangular. Hay solo un puñado de valores que se usan comúnmente:
div ( display: inline; /* Default of all elements, unless UA stylesheet overrides */ display: inline-block; /* Characteristics of block, but sits on a line */ display: block; /* UA stylesheet makes things like and block */ display: run-in; /* Not particularly well supported or common */ display: none; /* Hide */ )
El valor predeterminado para todos los elementos es en línea. La mayoría de las "hojas de estilo del agente de usuario" (los estilos predeterminados que el navegador aplica a todos los sitios) restablecen muchos elementos a "bloquear". Repasemos cada uno de estos y luego cubramos algunos de los otros valores menos comunes.
En línea
El valor predeterminado para elementos. Piense en elementos como ,
o y cómo ajustar texto en esos elementos dentro de una cadena de texto no interrumpe el flujo del texto.
Un elemento en línea aceptará márgenes y relleno, pero el elemento aún se ubica en línea como es de esperar. El margen y el relleno solo alejarán otros elementos horizontalmente, no verticalmente.
Un elemento en línea no aceptará height
y width
. Simplemente lo ignorará.
Bloque en línea
Un elemento configurado en inline-block
es muy similar a en línea en que se configurará en línea con el flujo natural del texto (en la "línea de base"). La diferencia es que puede establecer un width
y height
que se respetará.
Cuadra
La block
hoja de estilo UA del navegador establece una serie de elementos . Por lo general son elementos contenedores, como
, y
- . También texto "bloques" como
- MDN
y
. Los elementos de nivel de bloque no se asientan en línea, sino que se rompen. Por defecto (sin establecer un ancho) ocupan tanto espacio horizontal como pueden.
Entrar corriendo
Primero, esta propiedad no funciona en Firefox. Se dice que la especificación no está lo suficientemente bien definida. Sin embargo, para comenzar a entenderlo, es como si quisieras que un elemento de encabezado se alineara con el texto debajo de él. Flotarlo no funcionará y tampoco lo hará ninguna otra cosa, ya que no desea que el encabezado sea un elemento secundario del elemento de texto debajo de él, desea que sea su propio elemento independiente. En los navegadores "compatibles", es así:
Flexbox
La display
propiedad también se utiliza para nuevos métodos de diseño como Flexbox.
.header ( display: flex; )
Hay algunas versiones anteriores de la sintaxis de flexbox, así que consulte este artículo para conocer la sintaxis del uso de flexbox con el mejor soporte de navegador. Asegúrese de consultar esta guía completa de Flexbox.
Raíz de flujo
El flow-root
valor de visualización crea un nuevo "contexto de formato de bloque", pero por lo demás es similar block
. Un nuevo BFC ayuda con cosas como limpiar flotadores, eliminando la necesidad de hacks para hacer eso.
.group ( display: flow-root; )
Estos datos de soporte del navegador son de Caniuse, que tiene más detalles. Un número indica que el navegador admite la función en esa versión en adelante.
Escritorio
Cromo | Firefox | ES DECIR | Borde | Safari |
---|---|---|---|---|
58 | 53 | No | 79 | 13 |
Móvil / Tablet
Android Chrome | Android Firefox | Androide | Safari de iOS |
---|---|---|---|
88 | 85 | 81 | 13.0-13.1 |
Cuadrícula
La propiedad de visualización también establecerá inicialmente el diseño de la cuadrícula.
body ( display: grid; )
Aquí está nuestra guía sobre el diseño de cuadrícula, que incluye un gráfico de compatibilidad con el navegador.
Ninguno
Elimina completamente el elemento de la página. Tenga en cuenta que mientras el elemento todavía está en el DOM, se elimina visualmente y de cualquier otra forma imaginable (no puede tabularlo ni a sus elementos secundarios, los lectores de pantalla, etc. lo ignoran).
Valores de tabla
Existe un conjunto completo de valores de visualización que obligan a los elementos que no son de tabla a comportarse como elementos de tabla, si es necesario. Es poco común, pero a veces le permite ser "más semántico" con su código mientras utiliza los poderes de posicionamiento únicos de las tablas.
div ( display: table; display: table-cell; display: table-column; display: table-colgroup; display: table-header-group; display: table-row-group; display: table-footer-group; display: table-row; display: table-caption; )
Para usar, simplemente imite la estructura normal de la tabla. Ejemplo simple:
Gross but sometimes useful.