Ответ 1
Это может сбивать с толку, потому что в модели встроенного форматирования существуют разные высоты.
Высота встроенного блока
Элемент с display: inline
создает встроенный блок:
Встроенный блок - это тот, который является как встроенным, так и содержимым участвовать в его содержащем встроенном контексте форматирования. незаменимый элемент с
display
значениемinline
генерирует inline box.
И line-height
определяет высоту этого окна:
Высота встроенного блока охватывает все глифы и их наполовину ведущий с каждой стороны и, таким образом, точно "высота линии"
Следовательно, ваша коробка, по сути, 15px
высокая.
Высота строки строки
Есть также строки строк:
В контексте форматирования форматирования поля выкладываются горизонтально, один после другого, начиная с верхней части содержащего блока. Горизонтальные поля, границы и отступы соблюдаются между этими коробки. Ящики могут быть выровнены по вертикали по-разному: их днища или вершины могут быть выровнены или исходные тексты внутри них могут быть выровнены. Прямоугольная область, содержащая ящики, которые формируются строка называется полем строки.
Высота строки строки определяется правилами, указанными в раздел расчет высоты линии.
В случае, если поле строки содержит только не замененные встроенные поля с теми же line-height
и vertical-align
, эти правила говорят, что высота строки строки будет указана line-height
.
Итак, в вашем случае это также 15px
.
Высота области содержимого встроенного блока
Однако инструменты разработчика вашего браузера сказали 18px
. Это потому, что те 18px
являются высотой области содержимого. Это также область содержимого (вместе с прокладками), которая окрашена зеленым фоном.
Обратите внимание, что те 18px
могут отличаться, потому что CSS 2.1 не определяет алгоритм:
Высота области содержимого должна основываться на шрифте, но это спецификация не определяет, как. UA может, например, использовать em-box или максимальный зажим и спусковой механизм шрифта. (Последний убедитесь, что глифы с деталями выше или ниже em-box все еще падают в области содержимого, но приводит к коробкам разного размера для разные шрифты; первый обеспечит, чтобы авторы могли контролировать фонового стиля относительно "линии-высоты", но приводит к глифам живопись вне их области содержимого.)
Если UA реализует первое предложение, высота содержимого будет определяться font-size
, который определяет em-box. Это было бы то, что вы ожидали, при этом зеленый квадрат был 15px
высоким.
Однако большинство УА, похоже, не делают этого. Это означает, что, вероятно, высота будет высотой самого высокого глифа в используемых font-family
и font-size
.
Но использование значения font-size
15px
не означает, что самый высокий глиф будет 15px
высоким. Это зависит от шрифта. Это несколько похоже на normal
, начальное значение line-height
, которое определяется как
Сообщает агентам пользователя, чтобы установить используемое значение в "разумное" значение на основе на шрифте элемента [...]. Мы рекомендуем использовать значение для 'normal' между
1.0
и1.2
.
Это означает, что если вы используете font-size: 15px
, "разумный" line-height
будет находиться между 15px
и 18px
. В шрифте "Verdana" Firefox считает, что лучше всего 18px
; в "sans-serif" используется 17px
.