在IE 5.5 - 7中对角显示CSS水平导航栏

时间:2012-11-06 19:58:59

标签: html css internet-explorer

导航栏在IE 8及更高版本以及其他所有浏览器中显示正确的方式(水平)。但是只有IE 5.5,6和7它对角显示。任何人都可以帮忙吗?

.top-nav ul {
margin: 0;
list-style: none;
line-height: normal;
}

.top-nav li {
margin-left: 220px;
}

.top-nav a {
display: block;
float: left;
height: 38px;
margin-right: 1px;
padding: 4px 30px 0 30px;
text-decoration: none;
font-size: 34px;
font-weight: bold;
font-family: 'Exo', sans-serif;
color: #FFF;
}

.top-nav a:hover {
background:  #272727;
color: #18942f;
}

.top-nav .current_page_item a {
background:  #252525;
color: #FFF;
}

HTML

<div class="top-nav"> 
  <ul> 
    <li><a href="index.html" class="links">Home</a></li> 
    <li><a href="aboutme.html" class="links">About Me</a></li> 
    <li><a href="skills.html" class="links">Skills</a></li> 
    <li class="current_page_item"> <a href="#">Contact</a></li> 
    </ul> 
</div>

here's a screenshot

2 个答案:

答案 0 :(得分:0)

为什么不使用display:inline on li,而不是浮动每个链接,显示:inline适用于IE 5.5

此外,您还需要删除“display:Block”,因为这是导致链接向下移动的原因。

.top-nav ul {
margin: 0;
list-style: none;
line-height: normal;
}

.top-nav li {
 display: inline;
}

.top-nav a {
height: 38px;
margin-right: 1px;
padding: 4px 30px 0 30px;
text-decoration: none;
font-size: 34px;
font-weight: bold;
font-family: 'Exo', sans-serif;
color: #aaa;
}​

http://jsfiddle.net/YJjya/


如果您需要将项目作为块,则使用内联块。可以在此处找到使其适用于旧版本或IE的解决方法:Work Around Inline Block


此处还有一个方便的代码,可以在第一个头标记后立即放置。它只会显示用户正在使用IE 7或更高版本,并告诉他们一起使用它们并下载新的浏览器。真的不值得花时间试图让你的网站在每个IE版本上工作,因为你最终会把你的头发拉出去取悦一些明显不具备互联网知识的人。正如马里奥所说,世界上只有6%的人仍在使用IE6 ...但如果你仔细看看美国或英国这样的国家,这个数字低于1%

After Head

<!--[if lt IE 7]>
    <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
<![endif]-->

CSS

.chromeframe {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}

答案 1 :(得分:0)

我多次见过这个问题。你想浮动LI而不是LI里面的A.

您需要做的就是从[.top-nav a]类中删除[float:left]并将其添加到[.top-nav li]类中。你的CSS将是:

.top-nav ul {
margin: 0;
list-style: none;
line-height: normal;
}

.top-nav li {
margin-left: 220px;
float: left;
}

.top-nav a {
display: block;
height: 38px;
margin-right: 1px;
padding: 4px 30px 0 30px;
text-decoration: none;
font-size: 34px;
font-weight: bold;
font-family: 'Exo', sans-serif;
color: #FFF;
}

.top-nav a:hover {
background:  #272727;
color: #18942f;
}

.top-nav .current_page_item a {
background:  #252525;
color: #FFF;
}