IE7 - 显示:阻止<a> within <li> does not display correctly</li></a>

时间:2012-06-27 11:14:20

标签: html css internet-explorer-7

如果您查看此代码:http://jsfiddle.net/b3KaM/2/

在IE7中,即使设置了<a><li>标记也不会延伸到其父display: block;宽度。您可以看到与列表项上设置为红色的背景颜色和链接上的黄色背景颜色的区别。

它在FF / Chrome&amp; amp;朋友。

编辑: 这里的复杂性是我无法设置固定的宽度 - 链接文本应该保持在一行,整个列表应该根据需要扩展。

我知道之前曾经问过这个问题,而且我在SO上发现了一些问题,但我找不到这个问题的有效解决方案 - 任何人的想法?

如果没有 - 可以说在IE7上无法像在其他浏览器上那样获得相同的结果,即它是一个没有解决方法的Internet Explorer错误吗?

2 个答案:

答案 0 :(得分:2)

此问题是由IE7中的渲染现象和较低known as hasLayout引起的。

要解决此问题,您必须简单地阻止a元素“获取布局”。

不幸的是,有massive list of stuff that causes an element to "gain layout"

您的a元素目前已设置overflow: hiddenmin-height。如果删除这些属性,它将在IE7中运行。

答案 1 :(得分:0)

使用块,您还必须为元素提供宽度。例如: - http://jsfiddle.net/b3KaM/8/