我如何绕过IE CSS百分比舍入问题?

我如何绕过IE CSS百分比舍入问题?,css,internet-explorer,width,css-float,Css,Internet Explorer,Width,Css Float,我正在尝试创建一个动态站点,在这里我有三个浮动框彼此相邻。它们的宽度各为33.33%。它们周围的容器div的宽度为75% 我在这里找到了一篇关于这个问题的文章: 我还发现了一个相同问题的例子: 拖动窗口大小以查看IE7或更早版本中的跳跃 有人知道有没有可能绕过这个?(没有Javascript)在这种情况下,我倾向于使用一个只支持IE的样式表来解决这个问题,该样式表会在值生效之前对其进行篡改。在这种情况下,只需将宽度设置为33%,这并不完美,但这正是web的本质。我根据情况使用两种不同的解决方案。

我正在尝试创建一个动态站点,在这里我有三个浮动框彼此相邻。它们的宽度各为33.33%。它们周围的容器div的宽度为75%

我在这里找到了一篇关于这个问题的文章:
我还发现了一个相同问题的例子:

拖动窗口大小以查看IE7或更早版本中的跳跃


有人知道有没有可能绕过这个?(没有Javascript)

在这种情况下,我倾向于使用一个只支持IE的样式表来解决这个问题,该样式表会在值生效之前对其进行篡改。在这种情况下,只需将宽度设置为33%,这并不完美,但这正是web的本质。

我根据情况使用两种不同的解决方案。首先,尝试Nicole Sullivan方法(在行的最后一个元素上使用
溢出:隐藏;
而不是float/width):

这在大多数情况下都有效

否则,我会在最后一个元素中添加几个像素的负边距

.box2 {
  width: 33.33%;
  float: left;
  display: inline; /* fixes another IE bug */
  margin-right: -3px;
}

如果最后一个元素向右浮动,只需在左侧添加负边距即可。到目前为止,在少数情况下,
overflow
不适合我的情况下,这对我来说是有效的。

我认为一个简单的答案可能是根本不圆,只需创建一个最终的“间隔”元素,宽度为1%,与1/3元素的外观相同。即使IE也应该能够处理33+33+33+1舍入。

我也有同样的问题。ie7未正确呈现33.33%。这将与33%的工作,但它是一个发际线关闭。我在上面的第一个回复中使用了第二段代码的建议,加上一点ie攻击。它对我有用,我希望它对我有帮助

.all-boxes {
   width: 33.33%;
   float: left;
   display: inline;
   *margin-right: -1px; /* Add the asterisk */
 }

边际值可能需要根据您的实施情况进行更改,但1px对我有效。

谢谢Rory。我知道这是可以解决的,我可能会被迫这样做,以防没有人有更好的主意。这是一种丑陋的解决方法。不幸的是,在许多情况下,这也是必要的。最不难看的/黑客的方式是有条件的评论。“这是一种解决问题的丑陋方式”是和否,好吧,你可以称之为黑客,但如果有人能想出更简洁的方法,我会非常惊讶,大多数IE6黑客更糟糕!我不介意黑客攻击。33.33%给出了IE中的跳跃,如果我将其更改为例如33%以防止跳跃,则某些尺寸的宽度太小。33%是一个错误的数字,然后宽度就错了。这就是困扰我的地方。溢出属性的这个秘密好处很性感
.all-boxes {
   width: 33.33%;
   float: left;
   display: inline;
   *margin-right: -1px; /* Add the asterisk */
 }