为什么这不适用于Internet Explorer?

时间:2011-03-27 16:41:58

标签: html css internet-explorer

我正在尝试使用<ul><li>以及一些css使这个导航栏进行水平导航,但是我拥有它,它在IE中不起作用,仅Firefox和Chrome。谁知道为什么?

这是CSS:

.navbar1 ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;

}
.navbar1 li {
    float: left;
}
.navbar1 a {
    font-size: 24px;
    color: #FC0;
    background-color: #900;
    float: right;
    text-align: center;
    height: 30px;
    width: 120px;
    border-top-width: 5px;
    border-bottom-width: 5px;
    border-top-style: solid;
    border-bottom-style: solid;
    border-top-color: #FC0;
    border-right-color: #FC0;
    border-bottom-color: #FC0;
    border-left-color: #FC0;
    font-family: "Britannic Bold";  
}
.navbar1 a:hover, a:active {
    background-color:#500
}

这是HTML:

<ul>
    <li><a href="index.html">Home</a></li>
    <li><a href="services.html">Services</a></li>
    <li><a href="contact.html">Contact</a></li>
    <li><a></a></li>
    <li><a></a></li>
</ul>

4 个答案:

答案 0 :(得分:5)

您会在右侧看到所有链接,因为每个<li>仍会填充整个宽度,即使在浮动时也是如此。

试试这个:

.navbar1 li {
    width: 120px;
    float: left;
}

为了安全起见,您可能需要其他overflow: hidden;

工作示例:http://jsfiddle.net/kobi/kLRLv/

答案 1 :(得分:1)

不使用float,为什么不使用:

ul li {
 display: inline;
}

然后您可以选择是否指定宽度并添加边距&amp;填充锚标签以分隔项目,它们将是彼此相邻的位置,而不是在它们之间有换行符。

答案 2 :(得分:0)

将.navbar1 a {float:right}更改为.navbar1 a {float:none}

答案 3 :(得分:0)

我怀疑浮动:在.navbar1中,一个样式导致问题。

此外,您可能希望将菜单ul放入具有固定宽度的div中。类似的东西:

<div style="width: 95%; margin: 0 auto;">
    <ul>
       <li><a href="index.html">Home</a></li>
       <li><a href="services.html">Services</a></li>
       <li><a href="contact.html">Contact</a></li>
       <li><a></a></li>
       <li><a></a></li>
    </ul>
</div>