Rya*_*ill 2 css cross-browser internet-explorer-6
我为标题道歉,我真的不知道更好的方式(如果你有更好的方法让我知道,我会改变它).请考虑以下代码:
<html>
<head>
<title>IE 6 Menu Test</title>
<style type="text/css">
.nMenu {
border: 1px solid black;
}
.nMenu ul {
margin: 0;
padding: 0;
list-style-type: none;
}
.nMenu a {
display: block;
padding: 3px 0px 3px 5px;
background-color: #fff;
border-bottom: 1px solid #eee;
font-weight: bold;
text-decoration: none;
}
.nMenu a:hover {
background-color: #dddddd;
}
</style>
</head>
<body>
<div class="nMenu">
<ul>
<li><a href="">One</a></li><li><a href="">Two</a></li><li><a href="">Three</a></li><li><a href="">Four</a></li><li><a href="">Five</a></li>
</ul>
</div>
<hr />
<div class="nMenu">
<ul>
<li><a href="">One</a></li>
<li><a href="">Two</a></li>
<li><a href="">Three</a></li>
<li><a href="">Four</a></li>
<li><a href="">Five</a></li>
</ul>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在Firefox中,顶部和底部菜单显示完全相同.但是在IE6中,底部版本与顶部相同,除了在每个列表元素之后回车时,在每个元素上方显示额外的填充.没有回车的顶级版本没有.滚动底部列表中的项目时,这尤其明显(额外填充).
似乎IE6由于某种原因呈现回车.现在我们只是像上面的示例一样使用格式化代码,但这不太理想.我们可以在CSS中使用什么东西让它在IE6中看起来合适吗?
适用display: block;于li,告诉IE6使a100%的宽度,并且告诉所有浏览器以显示a作为块来代替.
.nMenu li {
display: block;
}
/* hack for IE6 */
* html .nMenu a
{
width: 100%
}
.nMenu a {
display: block;
padding: 3px 0px 3px 5px;
background-color: #fff;
border-bottom: 1px solid #eee;
font-weight:bold;
text-decoration:none;
}
在IE6中尝试过,两个列表看起来完全相同,并且在Firefox中渲染完全相同.