CSS百分比和小数仅在Chrome中正常工作(Firefox和Opera只是四舍五入)

CSS百分比和小数仅在Chrome中正常工作(Firefox和Opera只是四舍五入),css,firefox,cross-browser,opera,Css,Firefox,Cross Browser,Opera,我在对div应用带有百分比和小数点(例如33.33)的CSS宽度时遇到问题 它在Chrome上似乎运行良好,但在Opera和Firefox上却很受欢迎 Opera和Firefox都只是将百分比四舍五入,由于容器中的宽度不足,第三个div移到了新行。但当百分比没有四舍五入时,就有足够的空间让所有三个都放在一行中 关于如何解决这个问题有什么想法吗 谢谢您发布的演示为两个添加了1px边框。默认情况下,这不包括在33.33%的计算中,因此您的将永远不适合。要更改此设置,请使用框大小:边框框尝试使用 {

我在对div应用带有百分比和小数点(例如33.33)的
CSS宽度时遇到问题

它在Chrome上似乎运行良好,但在Opera和Firefox上却很受欢迎

Opera和Firefox都只是将百分比四舍五入,由于容器中的
宽度不足,第三个div移到了新行。但当百分比没有四舍五入时,就有足够的空间让所有三个都放在一行中

关于如何解决这个问题有什么想法吗


谢谢

您发布的演示为两个
添加了
1px
边框。默认情况下,这不包括在33.33%的计算中,因此您的
将永远不适合。要更改此设置,请使用
框大小:边框框

尝试使用

{最大宽度:33.334%;最小宽度:33.333%;}
而不是
{宽度:33.333%}

对于所有浏览器,它将是:

.class{最大宽度:33.334%;最小宽度:33.333%;*宽度:33.333%;}


这并不理想<代码>+-1px
仍保留在某些浏览器中,但。。。这比你发布的演示中的1%要好。

我看不出有任何地方有33.33%的宽度。@Sotiris是的,我知道,这只是一个例子。当你在Opera中把小提琴的宽度从11.61改为33.33%时,所有3个div都在同一条线上。@fivedigit但Opera仍然将它们全部取整。你能看到那边尽头的小缺口吗?这不会在Chrome中显示。所以Opera把他们都凑到了
33%
啊,对了。因此,如果这是一个问题,为什么它似乎在Chrome中工作?Thanks@nav_nav宽度为车身宽度80%的33.1%。Chrome将采用33.1%乘以80%,然后四舍五入到最接近的整数像素。这意味着事情会合拍,但会有差距。另一方面,其他浏览器实际上是通过亚像素定位来处理这样的情况,所以只要你的长度加起来达到100%(你的长度加起来没有),你就不会有差距。@BorisZbarsky在Opera和Firefox中,最后会有差距,尽管这三个百分比都等于100%(33.3333%)。而在Chrome中,第三个框指向一个新行。@nav_nav boder框的宽度为33.333333%加上1px,因为它们有1px的边框。所以不,它们加起来不是100%。我看到第三个框在Firefox中也换了一行,这是值得的。@BorisZbarsky所以我现在去掉了边框,这个缺口仍然出现在Opera中,但在Firefox或Chrome中没有。