Почему высота линии пролета бесполезна?
во-первых, давайте посмотрим фрагмент кода:
почему span
' s line-height
не используется?
The line-height
по-прежнему 200px
, но когда мы ставим span
' s display
свойство inline-block
на line-height
на - Это?
см. ниже:
2 ответа:
блочные макеты, например
div
по умолчанию, состоят из вертикальной стопки линия коробки, которые никогда не имеют пространства между ними и никогда не перекрываются. Каждая строка поля начинается с стойки который является воображаемым встроенным полем высота линии-высота, указанная для блока. Затем линейный блок продолжается со встроенными полями разметки в соответствии с их высотой линии.на диаграмме ниже показан макет для вашего первого примера. Заметить что поскольку высота шрифта в 1,7 раза меньше высоты стойки, высота строки определяется высотой стойки, так как поле строки должно полностью содержать свои встроенные поля. Если бы вы установили высоту линии на
span
чтобы быть больше, чем 200px, линейные поля будут выше, и вы увидите, что текст будет двигаться дальше друг от друга.когда вы делаете
span
inline-block, связь междуdiv
иspan
не изменение, но span получает свою собственную структуру компоновки блоков с собственным стеком линейных блоков. Таким образом, текст и разрывы строк выложены внутри этого внутреннего стека. Стойка внутреннего блока в 1,7 раза превышает высоту шрифта, т. е. то же самое, что и текст, и макет теперь выглядит так, как показано ниже, поэтому текстовые строки расположены ближе друг к другу, отражая настройку высоты строкиspan
.(обратите внимание, что две диаграммы находятся на разных весы.)
это дизайн. В документе HTML есть два типа элементов: блок и встроенный. Встроенные элементы не прерывают поток документа, но блочные элементы делают это.
элементы блока, как следует из названия, блокируют область на странице, которая содержит некоторый контент. Некоторые примеры блочных элементов:
<p>
и<div>
. Вы можете применить height, line-height и другие свойства CSS к этим элементам, чтобы изменить размер блока, а затем, поток документа.встроенные элементы занимают минимальное пространство, необходимое для их визуализации, что означает, что установка ширины и высоты на этих элементах не будет иметь никакого эффекта. Как вы уже видели, вы можете сказать браузеру, чтобы он рассматривал встроенный элемент как элемент блока, чтобы вы могли применять к ним высоты.
пример этого можно увидеть при использовании
<li>
элементы для создания меню.<li>
s-это блочные элементы. Если вы создадите список, элементы будут отображение по вертикали на странице, гарантируя, что каждый элемент списка отображается ниже предыдущего. Однако, если вы применяетеdisplay: inline;
к элементам списка, они теперь будут отображаться горизонтально.