Я использую поплавки при указании размеров элемента. Пожалуйста, посмотрите этот jsfiddle jsfiddle.net/yMTGJ Но и Chrome, и Opera не могут настроить правильную ширину, и в результате разрыв в один пиксель между двумя элементами div, как видно из изображения i.stack.imgur.com/ O9ZxW.png Не могут ли Chrome и Opera правильно обработать число с плавающей запятой? Почему такой разрыв в один пиксель?
Chrome и Opera терпят неудачу при использовании поплавков
Ответы (3)
это происходит потому, что вы указываете ширину как 466.5px
, которая округляется до 467px
другими браузерами (например, firefox). chrome пытается отобразить это правильно, поэтому есть линия в один пиксель, которая отображается в сочетании красного и желтого цветов (что сбивает с толку браузер и выглядит как пробел, но не является пробелом).
чтобы избежать этого, не используйте половину пикселей для указания размеров (как, по вашему мнению, должен выглядеть пример? хром делает именно то, что я ожидал, но я не знаю вашего намерения использовать половину пикселей).
взгляните на http://jsfiddle.net/Lupna/, где я отрегулировал ширину внешнего div до 932px
и внутренние до 466px
- отлично работает на хроме.
РЕДАКТИРОВАТЬ:
другое решение, которое заставит все браузеры отображать одинаково, если вам нужна ширина 933px
, состоит в том, чтобы создать пробел самостоятельно, который должен быть там: http://jsfiddle.net/eS7Qd/
1px
, наполовину желтая, наполовину красная, которая просто не может отображаться браузером (возможно, эта линия должна быть оранжевой, а не белой, но вы не получите (и не должны) резкого края)
- person oezi; 14.09.2011
932px
мне не подходит.
- person Hitch; 14.09.2011
Вот ваша проблема: width: 466.5px;
Десятичная точка не поддерживается повсеместно. Некоторая информация и возможное решение: http://www.latentmotion.com/browsers-trim-pixel-decimals/
Как сказано выше, проблема с половинным пикселем. Мониторы работают и пиксели представляют собой блок света, который нельзя разделить пополам. Некоторые браузеры могут попытаться решить эту проблему, но при этом вы не сможете получить согласованный результат во всех браузерах.
Я бы порекомендовал вам работать с шириной 960 пикселей и использовать что-то вроде http://www.960.gs.
Вы не можете заставить это работать, так как это недействительный CSS.