Использование дробных em в свойстве font-size CSS - PullRequest
13 голосов
/ 05 октября 2011

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

.className {
font-size:0.89em;
}

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

Ответы [ 2 ]

6 голосов
/ 05 октября 2011

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

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

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 пикселей!

0 голосов
/ 03 апреля 2019

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

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

...