Мое основное правило CSS для font-size
и line-height
довольно прост:Как достичь согласованности собственно CSS высоту строки
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
line-height: 24px;
}
Когда я создаю пункт, содержащий <em>
или <strong>
(или даже некоторые <code>
, который использует другой font-size
, чем <body>
), я замечаю, что эти элементы увеличивают высоту линии на пиксель или два.
Это приводит меня к мысли, что большинство браузеров принимают самый большой встроенный элемент для отображения line-height
. Это правильно?
Моя цель состоит в том, чтобы сделать line-height
согласованным, независимо от того, какие элементы являются встроенными.
Единственный способ я нашел, чтобы сделать line-height
последовательным является определение:
em, strong, code, etc {
line-height: 100%;
}
Является ли это правильный путь идти об этом? Или я слишком много перфекционист?
Edit 1:
Это также похоже на работу:
em, strong, code, etc {
line-height: 1;
}
Edit 2:
После игры с этим в течение нескольких дней, не кажется, что существует надежное решение для поддержания согласованного line-height
. Если у кого-то есть какие-то идеи, я бы, конечно, их хотел услышать.
Edit 3:
Для моей будущей ссылки и от моего собственного исследования, эти метки должны быть рассмотрены с line-height: 1
до тех пор, как они отображаются в линии вместе с другим стандартным текстом тела:
abbr, acronym, b, big, cite, code, del, dfn, em, i, ins, kbd, q,
samp, small, strong, sub, sup, tt, var
Эти элементы являются спорными:
a, bdo, img, span
Отличная информация! Что относительно 'p * {line-height: 0; } ', или еще лучше, может быть,' p a, p code, p big {line-height: 0; } '? Теперь мы куда-то попадаем. ';)' – Jeff
Последующий комментарий к моему последнему комментарию. Будьте осторожны с моим кодом выше. Если у вас есть, например, '
foo
', высота линии будет вычисляться до нуля, что, вероятно, не является тем, что вы хотите. – Jeff