IE7不尊重显示:阻止<ul> <li> <a></a> </li> </ul>

时间:2011-12-28 05:53:08

标签: html css internet-explorer internet-explorer-7

我正在尝试使用以下HTML标记进行简单的垂直导航:

<ul>
    <li><a></a></li>
    <li><a></a></li>
    <li><a></a></li>
</ul>

尽管display: block;<li>元素都有<a>,但IE7似乎并不尊重包含div的整个宽度。关于这个的任何想法?

http://jsfiddle.net/6eKGL/

IE7 vs IE8+

更新

我现在认为该问题与容器div的position属性有关,并且其宽度由<a>元素内部的内容决定。

5 个答案:

答案 0 :(得分:4)

这是IE-7问题解决后的更新小提琴。 http://jsfiddle.net/6eKGL/35/

演示:http://jsfiddle.net/6eKGL/35/embedded/result

CSS:

#ajax-search ul li a {
    display: block;
    /*min-width: 150px;*/ // Remove this rule and the IE-7 will start respecting the display block
    padding: 9px 18px;
}

请参阅以下IE-7

的屏幕截图

enter image description here

答案 1 :(得分:1)

overflow: hidden元素上设置<li>为我做了诀窍!

答案 2 :(得分:0)

尝试在您的html中添加doctype,最好是html5或xhtml 1.0 strict。这样,IE7以标准模式呈现,而不是使用它自己的盒子模型。

另外,使用css重置。谷歌为“埃里克梅耶重置”。

的引用:

http://www.quirksmode.org/css/quirksmode.html

http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/

http://en.wikipedia.org/wiki/Quirks_mode

<强>更新

看到这个小提琴:http://jsfiddle.net/6eKGL/23/

答案 3 :(得分:0)

ul 设置overflow:hidden,为 a 设置一些宽的宽度 http://jsfiddle.net/sergeir82/N2thx/

答案 4 :(得分:0)

从“#ajax-search ul li a {display:block; padding:9px 18px; min-width:150px;}”中删除“min-width”后尝试“