如何停止嵌套列表重叠父列表?

时间:2014-01-02 15:29:19

标签: html css

见这里:http://jsfiddle.net/wHztz/67/

在此示例中,颜色是背景图像的占位符,我注意到,当从display:block中删除.innerLeft ul li a时,嵌套列表会停止重叠,但后面的图像将无法正确显示。

我对CSS没有多少经验。有没有解决的办法?谢谢!

HTML:

<div class="innerLeft">
    <ul>
        <li><a href="">Fruit</a></li>
        <li>
            <ul>
                <li><a href="">Apples</a></li>
                <li><a href="">Apples</a></li>
                <li><a href="">Apples</a></li>
                <li><a href="">Apples</a></li>
                <li><a href="">Apples</a></li>
                <li><a href="">Apples</a></li>
                <li><a href="">Apples</a></li>
                <li><a href="">Apples</a></li>
            </ul>
        </li>
        <li><a href="">Vegetable</a></li>
    </ul>
</div>

CSS:

.innerLeft ul {
    width:199px;
    float:left;
    margin:0px;
    padding:0px 0 0 12px;
    list-style:none;
    min-height:10px;
}
.innerLeft ul li{
    padding:0px;
    margin:0px 0 10px 0;
    height:18px;
}
.innerLeft ul li a{
    background: red;
    display:block;
}
.innerLeft ul li ul li a{
    background: blue;
}

2 个答案:

答案 0 :(得分:3)

.innerLeft ul li {
    clear: left; /* Added */
    padding:0px;
    margin:0px 0 10px 0;
    height:18px;
}

http://jsfiddle.net/wHztz/70/

答案 1 :(得分:0)

使用display:inline-block;代替

demo

.innerLeft ul li a{
    background: red;
    display:inline-block;
}

它的发生是因为您已将css应用于ul li a而非ul li ul:)