为什么span元素不能使用这段代码

时间:2011-03-21 13:06:04

标签: html css

我有一个导航菜单,如下所示:

enter image description here

我必须将它分成三部分(左,中,右)。

我写了这样的html和css代码:

<span id="nav-left-img"></span>
    <ul id="navigation">
        <li>Home</li>
        <li>About Us</li>
        <li>Products</li>
        <li>Contact Us</li>
    </ul>
<span id="nav-right-img"></span>

这是css:

ul#navigation
{
    background: url('../img/menu-c.png') repeat-x;
    height: 45px;
    clear: both;
    width: 420px;
}
ul#navigation li
{
    float: left;
    text-align: center;
    width: 100px;
    padding-top: 10px;
}
#nav-left-img
{
    background: url('../img/menu-l.png') no-repeat;
    height: 45px;
    width: 10px;
}

span似乎没有做到这一点;如果我使用div它可行。代码有什么问题?如果我使用div代替span,或者我应该坚持div加入左右图像,这样可以吗?如何使用span

5 个答案:

答案 0 :(得分:10)

默认情况下, div display:block span 默认为display:inline。无法为display:inline元素设置宽度和高度。

我建议使用div

答案 1 :(得分:7)

也许尝试设置跨度来显示块?

答案 2 :(得分:3)

更简洁的解决方案是使用:after:before来完全避免“无用的”HTML:

#navigation:before { content: url('../img/menu-1.png'); }
#navigation:after  { content: url('../img/menu-2.png'); }

不兼容IE6 ......

答案 3 :(得分:1)

div和span基本相同,除了div默认为块级元素而span不是。要使其与span一起使用,只需将display: 'block';添加到CSS。

答案 4 :(得分:-1)

我建议将span替换为img,如下所示:
<img src="img/menu-1.png" alt="" class="nav" /> 在css中 img.nav{float:left;display:block}