【发布时间】:2012-09-06 01:16:21
【问题描述】:
我在 IE9 中处理 CSS float 时遇到问题。请查看 partycypacjaobywatelska.pl。在 Firefox、Chrome、Opera 等中,主页正确显示,而 IE9 在标题和其余内容之间显示空白。
这个空间由 left 和 right 类的两个元素触发(它们在 DOM 中的位置:body -> #wrapper -> #container -> .left, .right)。他们分别设置了float: left 和float: right,但在IE9 中,他们将.middle div 向下推。在它们上设置display: none 会有所帮助,但我无法完全控制这些 div 何时获得内容,所以这对我来说不是一个可行的解决方案。
我尝试创建一个最小的示例,但this jsFiddle 在 IE9 中运行良好。知道什么可能触发错误吗?
提前感谢您的帮助。
【问题讨论】:
-
不确定是什么问题 - 超级奇怪。如果你在 .middle 上抛出
clear: none;会发生什么?或者在 .middle 上设置一个高度? -
设置
height没有任何改变,而添加clear: none会向下推.middle。如果您进入 IE9 DOM Inspector 并单击.middle节点,您将看到.middle实际上并没有被向下推,因为这些浮动,它变得更窄了。然后.middle内的.jimgMenu的宽度要大得多,并且被向下推。如果我在.middle上设置clear: both,.middle也会被向下推(但仍保持其较短的宽度......奇怪)。在 Chrome/Firefox 中,.middle的宽度比在 IE9 中大得多(它与.left和.right重叠,而不是在 IE9 中它们并排)。 -
好的,我的解决方法是确保布局中的
.left和.right中没有空格,并在.left:empty和.right:empty上设置display: none。像魅力一样工作。
标签: css internet-explorer internet-explorer-9 css-float