我有一个CSS菜单设置在这里:IE空白样的错误,但不是空白的错误
的问题是,我注意到IE不能正常显示菜单,现在我米回到使用我的电脑来解决它有IE8。我正在使用兼容模式。
我注意到了两个问题。在子菜单上(说“资源中心”),每个项目之间会有额外的间距,当光标通过时它会关闭菜单。这听起来像IE空白错误,但我用PHP去掉了白色空间。如果我使用float:left; clear:left;它会导致菜单在Firefox和IE中的长度相等。
有人知道发生了什么事吗?
我有一个CSS菜单设置在这里:IE空白样的错误,但不是空白的错误
的问题是,我注意到IE不能正常显示菜单,现在我米回到使用我的电脑来解决它有IE8。我正在使用兼容模式。
我注意到了两个问题。在子菜单上(说“资源中心”),每个项目之间会有额外的间距,当光标通过时它会关闭菜单。这听起来像IE空白错误,但我用PHP去掉了白色空间。如果我使用float:left; clear:left;它会导致菜单在Firefox和IE中的长度相等。
有人知道发生了什么事吗?
我测试了我的解决方案只能在IE 7
中的元素:
li.menu-item
你必须改变
display:block;
到
display:inline;
它的工作,所以我不明白为什么有人投票呢?你为什么这么做? – 2011-05-06 19:35:29
因为我在Ie7上测试它,它**不**工作;) – 2011-05-06 19:40:51
而获胜者是.. :) – 2012-06-11 14:44:39
哇,这花了我有点。你应该真的减少你投掷在这些元素上的CSS数量。您正在覆盖很多级联值等。但是,有两个主要值是IE7遇到的问题。
第一个是min-width
上#main-nav > ul > li ul a
。出于某种原因,在a
上具有此值的IE7正在使其忽略它为display: block
。这可能与父母被错误拼写为inline-block
(见#2)有关。
其次是display: inline-block
由li
S IN的.sub-menu
继承了以上li.menu-item
ul.submenu
。当我删除这些项目IE7开始适当的行事。
在所有情况下,这与您所称的“IE空白错误”无关。当计算空白的拼接时,inline-block
元素的处理方式与inline
元素的处理方式不同。 This is per the spec。 IE没有错误,任何浏览器都不会将012空白空间缩小到inline
和inline-block
元素之间的单个空白(不使用bikesheding: discard
)违反了规范。
@ Rogue-Coder试试我的解决方案它更容易:) – 2011-05-06 20:33:18
@lord_t,但它不起作用。将“display:inline;”添加到包含“display:block”元素的元素将导致其他问题。 – 2011-05-06 20:37:17
所以你说这个,我的回答是解决问题的方法......也许不是最好的,但它是。 – 2011-05-06 20:51:26
这是用于IE6还是7?你有没有尝试使用'zoom:1'给链接hasLayout? – Mindthetic 2011-05-04 12:05:13