Я где-то читал, что <img>
элемент ведет себя как оба. Если правильно, может кто-нибудь объяснить с примерами?
163
Это правда, они оба - или, точнее, они являются элементами «встроенного блока». Это означает, что они текут как текст, но также имеют ширину и высоту, как блочные элементы.
В CSS вы можете установить элемент так, чтобы display: inline-block
он повторял поведение изображений *.
Изображения и объекты также известны как «замененные» элементы, так как они сами по себе не имеют содержимого, элемент по существу заменяется двоичными данными.
* Обратите внимание, что браузеры технически используют display: inline
(как видно из инструментов разработчика), но они уделяют особое внимание изображениям. Они все еще следуют всем чертам inline-block
.
img
элементы не являются,inline-block
но на самом делеinline
элементами. Вы можете проверить это в современном браузере, щелкнув правой кнопкой мыши на изображении, нажав «Проверить элемент», а затем просмотрев вычисленный стиль, который отобразитсяdisplay: inline
. Внутри тега нет контекста блока, поэтому вызывать его некорректноinline-block
. Для получения дополнительной информации о замененных встроенных элементах см . Ответ Квентина и эту статью MDN .img
элементы встроены - инструменты разработчика Google Chrome показываютimg
элементы как встроенные. Этот пост - единственное место, которое я нашел до сих пор, где говорится, что они естьinline-block
. Интересно, что я не нашел ни одного авторитета, который бы сказал, что ониinline
тоже. Может быть, как лечить тег зависит от реализации?display:inline-block
.img
Элемент является заменить встроенный элемент .Он ведет себя как встроенный элемент (потому что он есть), но некоторые обобщения о встроенных элементах не применяются к
img
элементам.например
Обобщение: «Ширина не относится к встроенным элементам»
Что в действительности говорится в спецификации : «Применяется ко всем элементам, кроме незаменяемых встроенных элементов, строк таблицы и групп строк»
Поскольку изображение является замененным встроенным элементом, оно применяется.
источник
Элементы IMG являются встроенными, что означает, что если они не плавают, они будут течь горизонтально с текстом и другими встроенными элементами.
Они являются «блочными» элементами в том смысле, что они имеют ширину и высоту. Но они ведут себя больше как «встроенный блок» в этом отношении.
источник
Почти для всех целей думайте о них как о встроенном элементе с установленной шириной. По сути, вы можете сами определять, как изображения должны отображаться с помощью CSS. Я обычно устанавливаю несколько классов изображений примерно так:
источник
Всякий раз, когда вы вставляете изображение, оно просто принимает ширину, которая изначально была у изображения. Вы можете добавить любой другой элемент HTML рядом с ним, и вы увидите, что это позволит. Это делает изображение «встроенным» элементом.
источник
Это правда, они оба - или, точнее, они являются элементами «встроенного блока». Это означает, что они текут как текст, но также имеют ширину и высоту, как блочные элементы.
источник