2015-07-31 3 views
1

Я беру спецификации дизайнеров и преобразовываю их в HTML/CSS. Я все-таки сталкиваюсь с одной и той же проблемой - дизайнер будет специфицировать прямоугольник с некоторым текстом, центрированным по вертикали в нем. Он задает высоту прямоугольника в 36 пикселей, а шрифт - 18 пикселей. Я создам 36-пиксельный DIV без рамки и 9-пиксельной надстройки (используя встроенную в бутстрап бокс-модель). Однако текст всегда слишком далек. Похоже, что текст больше 18 пикселей. Снимок экрана и измерение в Photoshop показывают, что текст имеет высоту 20 пикселей.Шрифт пикселей vs points?

Я что-то упустил? Являются ли пиксели непоследовательными от экрана к экрану? Является ли пиксель шрифта отличным от пикселя экрана? Я читал, что шрифты должны быть в точках теперь для больших экранов DPI. Это имеет значение?

+0

Что является 'линии height' свойство установлено в? – PeeHaa

+0

По умолчанию в бутстрапе. – bluedevil2k

+0

Я хотел сказать: http://jsbin.com/kahiropawe/edit?html,css,output – PeeHaa

ответ

6

Размер шрифта не соответствует высоте текста, это несколько произвольное значение, выбранное для отображения размера шрифта. Шрифты разных стилей могут иметь несколько разные фактические размеры, чтобы они выглядели одинаково по размеру.

Добавление к этому, разные браузеры вычисляют размер шрифта несколько иначе, поэтому фактический размер может отличаться от браузера между пикселями.

Кроме того, размер шрифта не включает высоту строки, которая по умолчанию добавляет примерно 20% высоты.

То, что я обычно использую для центрирования линии по вертикали в элементе, заключается в том, чтобы установить высоту линии на высоту элемента. Пример:

div { 
 
    background: #eee; 
 
    height: 50px; 
 
    line-height: 50px; 
 
}
<div>Text</div>

-2

Пиксели отличаются от экрана к экрану. Пиксели на некоторых экранах больше, чем другие. На некоторых экранах больше пикселей, чем у других. Это может быть проблемой, особенно при определении width и height.

ex и em останутся неизменными (в относительном пространстве не фактический размер) независимо от размера экрана или количества пикселей.

Пример использования:

Height: 10ex; Width: 10ex;

This хорошая статья объяснить все это в глубину.

+0

Но если div имеет высоту 38 пикселей, а шрифт - 18 пикселей, зачем нужны другие экраны? – PeeHaa

+1

Если экран имеет высоту 20 пикселей, то div будет занимать гораздо больше места, чем если бы экран имел высоту 100 пикселей. Можно было бы почти подняться на 100% от высоты экрана, в то время как другая заняла бы чуть меньше одной пятой. Это правда, что они занимают одинаковое количество пикселей, но в зависимости от разрешения экрана он может выглядеть по-другому. Что создает проблему, когда мы живем в мире с различными разрешениями экрана. – Regis

+3

Не понимаю, как это относится к вопросу? – PeeHaa

0

Шрифт 18px одного типа не обязательно имеет ту же высоту, что и 18px другого шрифта. У вас могут быть восходящие и descenders, которые могут сделать шрифт больше, но размер шрифта CSS не учитывает это. Поэтому нам нужно увидеть, какой шрифт вы используете, но попытка сосредоточиться на основе размера шрифта редко работает и ненадежна, если вы изменили шрифт на более поздний срок.