IE Whitespace就像bug一样,但不是空白bug

时间:2011-05-03 15:36:38

标签: html css internet-explorer whitespace

我在这里设置了CSS菜单:

http://pans.saebermedia.com/

问题是,我注意到IE没有正确显示菜单,现在我又回到使用我的电脑来修复IE8了。我正在使用兼容模式。

我注意到了两个问题。在子菜单上,(说“资源中心”),每个项目之间有一个额外的间距,当光标通过它时关闭菜单。这听起来像IE Whitespace bug,但我使用PHP去掉了White-space。如果我使用float:left; clear:left;它导致菜单在Firefox和IE中的长度相等。

有人知道发生了什么事吗?

2 个答案:

答案 0 :(得分:1)

我仅在IE 7上测试了我的解决方案。

元素中的

li.menu-item

你必须改变

display:block;

display:inline;

答案 1 :(得分:0)

哇,这让我有点兴奋。你应该真的减少你在这些元素上投掷的css数量。您正在覆盖许多级联值等。但是,IE7存在2个主要值存在问题。

第一个是min-width #main-nav > ul > li ul a。出于某种原因,IE7在a上具有此值会使其忽略它为display: block。这可能与父母被误解为inline-block有关(参见#2)。

其次是来自display: inline-block上方li .sub-menu的{​​{1}}继承的li.menu-item。当我删除这些项目时,IE7开始正常运作。

在所有情况下,这与您所谓的“IE Whitespace Bug”无关。在计算空白的拼贴时,ul.submenu元素与inline-block元素的处理方式没有区别。 This is per the spec。 IE没有错误,任何不会将空格折叠为inlineinline元素之间的单个空格(不使用bikesheding: discard)的浏览器违反了规范。< / p>