Подтвердить что ты не робот

Использование дробных em в свойствах font-size CSS

Скажем, у меня есть следующее правило CSS:

.className {
font-size:0.89em;
}

Мой вопрос заключается в том, как "глубоко" во фракции я могу использовать, указав им, чтобы браузеры действительно поддерживали его, и чтобы размер шрифта отображался по-разному для небольшого дробного изменения значения em?

4b9b3361

Ответ 1

Джонсон прав. Мы по-прежнему выполняем рендеринг в пикселях независимо от того, какой размер мы используем, и небольшие изменения в ems не изменят отображаемый размер:

Например, для текста, первоначально отображаемого на высоте 20px *, мы видим, что нет эффективного изменения при добавлении правила, чтобы сделать его .99em его первоначальной высоты:

20 * 0.99 = 19.8 

Браузер не может отобразить 0,8 пикселя, поэтому (при условии, что он будет округлен) он все равно отобразит его как высоту 20 пикселей.

Хотя кажется, что браузеры не всегда округляются, как ожидалось:

http://meyerweb.com/eric/thoughts/2010/02/10/rounding-off/

http://ejohn.org/blog/sub-pixel-problems-in-css/

* Да, я знаю, что размер шрифта 20 пикселей не означает, что он отображается на 20 пикселей!

Ответ 2

Однако следует иметь в виду, что дробные значения em, как и все числа с плавающей запятой, подвержены ошибке округления.

Я обнаружил это при установке границ моего медиазапроса, где одна максимальная ширина была на 0,00001 метра от другой минимальной ширины, и она была округлена, и оба запроса были активированы. После изменения разницы до 0,001em запросы работали, как и ожидалось, исключительно.