Расчетное значение line-height: normal
варьируется в зависимости от платформы, браузера (и разных версий одного и того же браузера, как вы заявляете), шрифтов и даже разных размеров одного и того же шрифта (см. Статью Эрика Мейера) .
Установка значения без единиц измерения, например ...
body {line-height: 1.2;}
... должен работать для нормализации расстояния между браузерами. Если это не работает, можете ли вы предоставить более подробное описание вашей таблицы стилей?
Трудно (невозможно?) Получить "идеальные по пикселям" результаты, но для получения максимально предсказуемых результатов я стараюсь использовать высоту строки, которая дает хорошее круглое значение при умножении на font- размер. Мы не можем знать размер шрифта по умолчанию для пользовательского агента, но 16 пикселей довольно распространены.
body
{
font-size: 100%;
line-height: 1.5;
}
Если начальный размер шрифта пользовательского агента действительно равен 16 пикселям, то высота строки 1.5
получается неплохой, даже 24 пикселя. Тем не менее, пользователи могут изменять размер шрифта по умолчанию или масштаб страницы, и разные браузеры используют разные способы масштабирования страницы. Тем не менее, я думаю, что у меня был разумный успех для большинства пользователей. Если я не могу точно определить высоту строки, я стреляю немного больше целого, чем чуть ниже, потому что некоторые браузеры, похоже, обрезают значения, а не округляют их.
Также обратите внимание, что если вы используете процент для высоты строки, он ведет себя по-разному, когда значение наследуется.
body
{
font-size: 100%;
line-height: 150%;
}
p
{
font-size: 75%;
}
Начиная с базового размера шрифта 16 пикселей, высота строки будет составлять 24 пикселя. В элементе <p>
размер шрифта становится 12 пикселей, но высота строки не становится 18 пикселей, а остается 24 пикселя. В этом разница между line-height: 1.5
и line-height: 150%
. При использовании body {line-height: 1.5;}
высота строки для <p>
составляет 18 пикселей.