Вот мой код:
div {
border: thin solid gray;
display: inline-block;
}
h1 {
background: lightblue;
}
span {
background: orange;
}
.b h1 {
line-height: 1.2em;
}
.c span {
font-size: 0.5em;
}
.d h1 {
line-height: 1.2em;
}
.d span {
font-size: 0.5em;
}
<div class="a"><h1>Foo<span>Bar</span></h2></div>
<div class="b"><h1>Foo<span>Bar</span></h2></div>
<div class="c"><h1>Foo<span>Bar</span></h2></div>
<div class="d"><h1>Foo<span>Bar</span></h2></div>
Есть четыре div
. Каждый div
имеет h1
и span
, вложенные в h1
. К этому вопросу относятся только стили line-height
и font-size
. Другие стили предназначены только для визуализации проблемы. Вот на что обратить внимание,
div.a
— обычный div. Здесь нет стиляline-height
илиfont-size
.div.b
только стилиh1
имеютline-height: 1.2
.div.c
только стилиspan
имеютfont-size: small
.div.d
меняет стильh1
наline-height: 1.2
иspan
наfont-size: small
.
Почему заголовок в div.d
имеет большую высоту, чем остальные?
span
унаследуетline-height
, но это справедливо и дляdiv.c
. По умолчаниюline-height
вместоh1
в браузере равно1.2
, поэтому даже вdiv.c
span
наследуетline-height
от1.2
и, таким образом, становится эквивалентнымdiv.d
. Почему тогдаdiv.c
не имеет большей высоты, чемdiv.d
? - person Lone Learner   schedule 31.12.20201.2
и1.2em
не совпадают, объяснено здесь: stackoverflow.com/a/60109105/8620333 (вопрос объясняется с помощью проценты, но они ведут себя как проценты) - person Temani Afif   schedule 31.12.20201.2em
, когда на самом деле намеревался1.2
. Зная это, проблема решена сейчас. Спасибо за помощь! - person Lone Learner   schedule 31.12.2020