当使用CSS设置元素的宽度时,我经常希望设置不是完整百分比的百分比宽度。
所有(我怀疑)浏览器都以相同的方式处理小数百分比,还是呈现方式不同?
我可以准确地将其用于布局吗?
Webkit浏览器处理亚像素舍入的方式与其他浏览器非常不同。以至于它被认为是一个持续的问题。同时,Firefox和Opera似乎能够很好地处理亚像素渲染;我没听说过很多问题。
IE完全是另一回事。
以下是有关此主题的更多链接:
- CSS中的子像素问题
- Webkit中Bug的百分比
不久前我问了一个类似的问题。这就是我从那时起(从公认的答案和其他地方)所能收集到的。
是的。
根据我的记忆:
在Opera中,你不能设置百分比的小数点,所以如果你设置33.3%,它只使用33%(相当烦人)(编辑:Opera可能在当前版本中有所改进)
在Firefox中,如果百分比加起来是100%,那么像素加起来并不总是100%
例如,你有一个外部div,它有三列,宽度都是33.33333%。如果外部div的宽度是100px,那么这些列将有33个像素,总和是99个像素,而不是100。(编辑:Firefox比我记忆中做得更好。也许他们改进了)
老IE,我不记得IE9似乎工作得很好。当然,最糟糕的是IE7,它被四舍五入(作为IE6,但谁在乎呢?)。IE8/9似乎工作正常
Chrome运行良好
Safari:记不起
编辑
她的可以自己测试
http://jsfiddle.net/fTpFw/
结论
在我摆弄了不同的浏览器之后,我认为它们都有所改进。现代浏览器中唯一糟糕的实现(从我想要实现的)是Opera和Safari。IE7也是一个终结者。如果你不必处理这些bug,你可以继续使用百分比宽度。