Десятичные знаки в процентах CSS

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

Б. Н. Я не спрашиваю о хорошо известная проблема округления субпикселей.

причина, по которой я спрашиваю, заключается в том, что IE, похоже, округляет процентные значения с плавающей запятой до 2 десятичных места, тогда как Webkit и Gecko позволяют по крайней мере 3 или даже больше (я не тестировал).

например:

li {
    width: 14.768%;
}

при проверке в веб-инспекторе Chrome или Firebug,s имеет ширину 14.768%. Однако в IE dev tools (режим IE9/8/7) они имеют ширину 14.76%. Это приводит к тому, что фактические значения на основе пикселей также полностью отсутствуют.

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

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

редактировать

Firefox кажется чтобы использовать правильные процентные значения, показанные в инспекторе (не округленные до 2 знаков после запятой), но отображающие то же самое поведения, т. е. с точки зрения фактического размещения пикселей.

1 ответов


вероятно, есть много решений для вашей проблемы, я бы предложил следующее:

  1. раунд на 2 десятичные самостоятельно для всех, кроме одного, чем уменьшить от общая ширина для последнего.
  2. использовать table или display: table, чем браузер сам исправит ширину.