Display
Last updated
Last updated
Antes de comenzar, debemos saber que cada etiqueta HTML tiene un Β«tipo de representaciΓ³n visualΒ» en el navegador, lo que habitualmente se suele denominar el tipo de caja. Si no sabes nada sobre esto, te aconsejo echarle un vistazo antes al apartado .
Recordemos que, por defecto, cada elemento HTML tiene un tipo de representaciΓ³n concreto. Como norma general (con excepciones) los elementos que se utilizan dentro de un pΓ‘rrafo, son de tipo inline
, mientras que los que se utilizan para agrupar, son de tipo block
. La propiedad display
de CSS permite modificar el comportamiento de un elemento HTML, cambiΓ‘ndolo al que le indiquemos, como por ejemplo inline
o block
(u otro de los que veremos mΓ‘s adelante).
Esta propiedad puede tomar muchos valores diferentes, pero los mΓ‘s comunes son estos tres:
block
: hace que el comportamiento del elemento sea como un bloque.
inline
: el elemento se renderizarΓ‘ en lΓnea con otros elementos.
inline-block
: el elemento tendrΓ‘ un comportamiento mezcla entre los dos anteriores, que ahora voy a describir.
Estos se utiliza para alterar el flujo noramle de una pagina web. En el queso de que no seppas lo que es el flujo normal, la documentaciΓ³n de la MDN define el flujo normal de la siguiente manera:
El flujo normal, o flow Layout, es la forma en que los elementos de bloque y en lΓnea se muestran en una pΓ‘gina antes de que se realicen cambios en su diseΓ±o.
Los elementos en lΓnea no admiten dimensiones (width, height) pero si admiten margin, padding y border, solo ocupan lo que tengan en su contenido, es decir, aunque quieras declarar un ancho y alto a un elemento de lΓnea no podrΓ‘ tener efecto ya que estos elementos no aceptan dimensiones, asΓ tambiΓ©n lo explica la documentaciΓ³n de la MDN:
Si hay varios elementos en lΓnea estarΓ‘n colocados de izquierda a derecha (uno al lado de otro).
Por ejemplo, el elemento HTML <span>
es un elemento de lΓnea por defecto y no importa cuΓ‘ntas etiquetas <span>
haya, siempre aparecerΓ‘n en lΓnea o, en otras palabras, una inmediatamente despuΓ©s de la otra, produciendo una cadena continua de texto.
Un elemento de bloque es un elemento que ocupa el ancho mΓ‘ximo disponible. Tal y como dice la documentaciΓ³n de la MDN:
De manera predeterminada, el contenido de un elemento de nivel de bloque es el 100% del ancho de su elemento padre y su altura viene determinada por su contenido.
Esto nos quiere decir que los elementos de tipo bloque abarcan el 100% del espacio que tengan disponible, es decir, se estiran por todo el ancho de la pΓ‘gina.
Cabe mencionar que estos elementos si admiten dimensiones pero no pueden tener otro elemento a su lado ya que abarcan todo el espacio que tengan disponible por lo tanto estarΓ‘n colocados de arriba hacia abajo.
Es una combinaciΓ³n entre los dos tipos de elementos mencionados anteriormente (block e inline), los elementos con el valor inline-block
admiten dimensiones pero todavΓa son elementos de lΓnea, es decir estarΓ‘n colocados uno al lado de otro.
Ele elemento
<img>
es un elemento con la propiedaddisplay: inline-block;