He leído en alguna parte que ese <img>
elemento se comporta como ambos. Si es correcto, ¿alguien podría explicarlo con ejemplos?
163
Es cierto, son ambos, o más precisamente, son elementos de "bloque en línea". Esto significa que fluyen en línea como texto, pero también tienen un ancho y una altura como elementos de bloque.
En CSS, puede establecer un elemento para display: inline-block
que reproduzca el comportamiento de las imágenes *.
Las imágenes y los objetos también se conocen como elementos "reemplazados", ya que no tienen contenido per se, el elemento se reemplaza esencialmente por datos binarios.
* Tenga en cuenta que los navegadores utilizan técnicamente display: inline
(como se ve en las herramientas de desarrollador) pero están dando un tratamiento especial a las imágenes. Todavía siguen todos los rasgos de inline-block
.
img
elementos no soninline-block
sinoinline
elementos. Puede verificar esto en un navegador moderno haciendo clic derecho en una imagen, haciendo clic en "Inspeccionar elemento", luego visualizando el estilo calculado, que se mostrarádisplay: inline
. No hay contexto de bloque dentro de la etiqueta, por lo que no es correcto llamarloinline-block
. Para obtener más información sobre los elementos en línea reemplazados, consulte la respuesta de Quentin y este artículo de MDN .img
elementos estén en línea: las herramientas de desarrollo de Google Chrome muestran losimg
elementos como en línea. Esta publicación es el único lugar que he encontrado hasta ahora que dice que están en suinline-block
lugar. Curiosamente, tampoco he encontrado ninguna autoridad que diga que lo soninline
. ¿Cómo tratar la etiqueta depende de la implementación, tal vez?display:inline-block
.Un
img
elemento es un elemento en línea reemplazado .Se comporta como un elemento en línea (porque lo es), pero algunas generalizaciones sobre elementos en línea no se aplican a los
img
elementos.p.ej
Generalización: "El ancho no se aplica a los elementos en línea"
Lo que en realidad dice la especificación : "Se aplica a: todos los elementos excepto elementos en línea no reemplazados, filas de tabla y grupos de filas"
Como una imagen es un elemento en línea reemplazado, se aplica.
fuente
Los elementos IMG están en línea, lo que significa que, a menos que sean flotantes, fluirán horizontalmente con texto y otros elementos en línea.
Son elementos de "bloque" en el sentido de que tienen un ancho y un alto. Pero se comportan más como "bloque en línea" en ese sentido.
fuente
Para casi todos los propósitos, piense en ellos como un elemento en línea con un conjunto de ancho. Básicamente, usted es libre de dictar cómo desea que se muestren las imágenes usando CSS. Generalmente establezco algunas clases de imágenes de esta manera:
fuente
Cada vez que inserta una imagen, solo toma el ancho que originalmente tenía la imagen. Puede agregar cualquier otro elemento html junto a él y verá que lo permitirá. Eso hace que la imagen sea un elemento "en línea".
fuente
Es cierto, son ambos, o más precisamente, son elementos de "bloque en línea". Esto significa que fluyen en línea como texto, pero también tienen un ancho y una altura como elementos de bloque.
fuente