Спецификация CSS указывает, что строка-высота должна применяться к тексту путем деления указанного значения на два и применения результата выше и ниже строки текста.
Это значительно отличается от традиционного понимания ведущего, что обычно означает, что интервал "добавлен" только над линией текста. (Я знаю, что это не на 100% правильно, потому что на самом деле линия-высота не добавляет пробела, а устанавливает высоту линии, однако проще описать проблему).
Рассмотрим этот пример разметки:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
p
{
margin:0;
font-size: 13pt;
line-height: 15pt;
}
h1
{
margin:0;
font-size: 21pt;
line-height: 30pt;
}
</style>
</head>
<body>
<h1>Title</h1>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry standard dummy text ever since the 1500s.</p>
<p>Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p>
<p>It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.</p>
</body>
</html>
Если высота линии была равна традиционному пониманию ведущего, то расстояние между <h1>
и first <p>
было бы равно расстоянию между <p>
's, так как это расстояние определяется ведущим. Однако, это не так.
Пока расстояние между <p>
остается неизменным (p line-height - p font-size = 15 - 13 = 2pt
), расстояние между <h1>
и первым <p>
отличается: оно равно (p line-height - p font-size)/2 + (h1 line-height - h1 font-size)/2 = (15 - 13)/2 + (30-21)/2 = 5.5pt
.
Это можно легко заметить невооруженным глазом, если вышеуказанная разметка обрабатывается браузером.
Проблема заключается в том, что традиционный способ поддержания вертикального визуального ритма на странице - это установка ведущих элементов в кратчайшие основные. Этот метод неприменим в CSS, как показано выше.
У меня есть 3 вопроса:
- Является ли мое понимание линейной высоты, ведущей и их различий правильной?
- Есть ли способ поддерживать вертикальный ритм с помощью CSS (путем устранения традиционного лидерства с помощью CSS или нет)?
- (Бонусный вопрос). Какова была причина того, что высота линии была настолько отличной от ведущей?
ОБНОВЛЕНИЕ: благодарю вас за ваш вклад! Обратите внимание, что я предложил свое собственное решение, и я был бы очень благодарен за любые комментарии по нему: qaru.site/info/434894/...