我如何围绕IE CSS百分比的四舍五入问题得到什么?(How do I get around the

2019-07-29 16:19发布

我试图创建一个动态的网站,我有旁边的海誓山盟3个浮动框。 他们在各自的宽度33.33%。 他们周围的容器的div是在宽度为75%。

我发现这里有关问题的一篇文章: CSS:跳列
我也发现了同样的问题在这里的一个例子: 跳列例子

拖动窗口的大小,看看在IE7或更早的跳跃。

任何人都知道,如果有可能解决这个问题? (没有JavaScript)

Answer 1:

我用视情况而定两个不同的解决方案。 首先,尝试了尼科尔Sullivan的方法(使用overflow: hidden;在一行而不是浮子/宽度的最终元件上):

http://www.stubbornella.org/content/2009/07/23/overflow-a-secret-benefit/

.container {
  width: 75%;
}

.box1 {
  width: 33.33%;
  float: left;
  display: inline; /* fixes another IE bug */
}

.box2 {
  overflow: hidden;
}

这在大多数情况下。

如果做不到这一点,我几个像素的阴性切缘添加到最后一个元素来代替。

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

如果最后一个元素是浮动的,而不是正确的,只是添加了否定缘至左侧。 到目前为止,已在少数情况下,工作对我来说overflow不适合。



Answer 2:

在这样的情况下,我会倾向于使用,直到他们的工作,呓语的值的IE,仅样式表来避开这个问题。 在这种情况下,只需设置宽度以33%,也不会是完美的,但那么这就是网络的只是性质。



Answer 3:

我认为,一个简单的答案可能是不圆可言,只需要创建一个最终的“间隔”元素用1%的宽度共享1/3的元素的外观。 甚至IE应该能够处理一个33 + 33 + 33 + 1舍入。



Answer 4:

我有同样的问题。 IE7不正确呈现33.33%。 这将有33%的工作,但随后这是一个发际线关闭。 从我的代码在上述第一响应所述第二块中使用的建议,再加一点即劈。 它的工作对我来说,我希望它能帮助。

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

边距值可能需要更改根据您的实现,但1px的为我工作。



文章来源: How do I get around the IE CSS percentage rounding problem?