Является ли использование значения line-height
1,4 таким же, как использование значения line-height
140%? Другими словами, можем ли мы считать безразмерное значение таким же, как процентное значение?
Является ли высота строки: 1.4 такой же, как высота строки: 140%?
Ответы (2)
Не существует точно1 одинаковых из-за наследования, вот тривиальный пример.
.box {
display: inline-block;
border: 1px solid green;
}
.box > span {
font-size: 50px;
border: 1px solid red;
}
.box > span > span{
font-size: 50%;
border: 1px solid red;
}
<div class="box">
<span style="line-height:1.8;"><span>some text here</span></span>
</div>
<div class="box">
<span style="line-height:180%;"><span>some text here</span></span>
</div>
В первом случае последний диапазон будет иметь значение line-height
, равное 45px
, что равно 1.8 * (50% of 50px)
, где 1.8
— это унаследованное значение высоты строки от его родителя. Во втором случае последний диапазон будет иметь значение, равное 90px
, то есть 180% of 50px
, где все значение наследуется от его родителя.
Другими словами, первый диапазон получает 1.8
, затем будет учитывать свой font-size
, в то время как второй диапазон получит вычисленное значение от своего родителя, а font-size
ничего не изменит.
<number>
Используемое значение свойства — это число, умноженное на размер шрифта элемента. Отрицательные значения недопустимы. Вычисленное значение совпадает с указанным значением.
<percentage>
Вычисленное значение свойства – это процент, умноженный на вычисленный размер шрифта элемента. Отрицательные значения недопустимы. ref
Обратите внимание, что в обоих случаях вычисленное значение не совпадает, что делает наследование различным в обоих случаях.
Чтобы лучше проиллюстрировать процентный случай:
.box {
display: inline-block;
border: 1px solid green;
}
.box > span {
font-size: 50px;
border: 1px solid red;
line-height: 180%;
}
.box > span > span {
border: 1px solid red;
}
<div class="box">
<span ><span style="font-size:50px;">some text </span></span>
</div>
<div class="box">
<span ><span style="font-size:50%;">some text </span></span>
</div>
<div class="box">
<span ><span style="font-size:20px;">some text </span></span>
</div>
<div class="box">
<span ><span style="font-size:5px;">some text </span></span>
</div>
Если вы осмотрите элементы, вы можете ясно увидеть, что во всех случаях значение line-height
равно 90px
.
Обратитесь к этому вопросу, чтобы понять, почему высота окна увеличивается: Почему высота увеличивается с меньшим размером шрифта?
Если мы рассмотрим безразмерное значение, мы получим другой результат:
.box {
display: inline-block;
border: 1px solid green;
}
.box > span {
font-size: 50px;
border: 1px solid red;
line-height: 1.8;
}
.box > span > span {
border: 1px solid red;
}
<div class="box">
<span ><span style="font-size:50px;">some text </span></span>
</div>
<div class="box">
<span ><span style="font-size:50%;">some text </span></span>
</div>
<div class="box">
<span ><span style="font-size:20px;">some text </span></span>
</div>
<div class="box">
<span ><span style="font-size:5px;">some text </span></span>
</div>
1Если мы опустим факт наследования и рассмотрим только тот элемент, где мы явно установили line-height
, то мы можем сказать, что оба они одинаковы, поскольку они дадут одинаковый результат для заинтересованный элемент.
См. пример..
<div style="background:green;">
<p style="line-height:1.4;">This is demo Text. <br>This is demo Text.</p>
</div>
<div style="background:green;">
<p style="line-height:140%;">This is demo Text. <br>This is demo Text.</p>
</div>
height:140%;
, поскольку ширина и высота%
основаны на родительском элементе.line-height
не основан на родительском элементе, поэтомуline-height:140%;
совпадает сline-height:1.4;
. - person StackSlave   schedule 07.02.2020