|
Георгий Иванкин
4 августа 2010
|
Антон, в ЦССе есть несколько параметров, которые отвечают за расстояния между строками. Во-первых, это line-height: расстояние между базовыми линиями двух строк. На вашем эскизе оно равно 24 пикселям, но, как правильно заметил Илья, в вёрстке предпочтительнее указывать всё расстояние в em-ах (для line-height также можно указывать просто числовой коэффициент, что по сути аналогично). Итак, при размере основного текста в 10 пикселей получаем line-height: 2.4.
Далее предположим, хотя вы этого не указали явно в своем эскизе (как не указывают многие дизайнеры), что для заголовков вам нужна такая же высота строки — 24 пикселя. При этом размер шрифта в заголовке — 13 пикселей (1.3em при размере основного шрифта в 10 пикселей). Значит line-height = 24 / 13 = 1.846153846.
Теперь нам нужно, чтобы «высота строки заголовка (y) минус высота заглавной буквы заголовка (z) плюс расстояние между базовой линией нижней строчки параграфа (x)» было равно 34 пикселям. Так как y и z нам известны, осталось посчитать x: x = 34 – (y – z) = 34 – (24 – 13) = 23px. Это расстояние называется называется margin: дополнительное расстояние с краю блочного элемента. Проанализировав остальной эскиз, верстальщику нужно решить, будет ли удобнее прибавить это расстояние снизу к блоку текста или сверху к заголовку. В первом случае em составляет 10 пикселей, значит искомое расстояние составит 2.3em. Если же придется остановиться на втором варианте и отмерять это расстояние сверху заголовка, оно составит 23 / 13 = 1.769230769em :-)
Обычно верстальщики округляют эти значения до двух или трёх цифр после запятой, но хороший тон — оставлять в комментариях к коду уравнения, путём которых эти значения были получены.
Дополнительная сложность состоит в том, что при пересчёте эмов в пиксели при рендеринге браузеры по-разному округляют получающиеся значения. Поэтому бывает, что в Вебките или в Опере какой-нибудь активный пункт меню, например, вдруг начинает «прыгать» на 1 пиксель, и иногда бывает проще переписать злосчастный кусок на пиксели (особенно, если речь идёт о маленьких значениях в 1, 2, 3 пикселя).
Когда же речь идёт о статическом содержании, как в вашем примере, то, как показывает моя практика, дизайнеры не замечают разницы между 34 и 31 пикселем, поэтому я часто отдаю предпочтение читаемому коду над попиксельным соответствием.
В общем, если вы укажете расстояние от базовой линии нижней строки текста до верха строки заголовка (не верха прописной буквы, а именно верха строки, учитывая line-height), верстальщику, скорее всего, будет немного проще. А если вы укажете это расстояние не в пикселях, а в процентах от высоты строки, например: «после каждого абзаца должен быть отступ, равный высоте строки», или «перед каждым таким заголовком должен быть отступ, равный 120% от высоты строки», то уважение верстальщика вам гарантировано :-)
|
|
|
|