为什么嵌套列表导航中的所有列表项都直接显示在彼此之上?

时间:2012-12-20 18:39:43

标签: css positioning

嵌套列表导航未显示第二个列表,因为我期望(垂直列出的块)。相反,所有物品都直接放在彼此之上。

http://jsfiddle.net/HL69H/3/

<div id="linksLeft">
        <ul class="menu">
            <li class="current"><a href="">about</a></li>
            <li class="current" id="active"><a href="">portfolio</a>
                <ul class="subMenu" id="subNav">
                    <li><a href="">editorial</a></li>
                    <li><a href="">advertising</a></li>
                    <li><a href="">packaging</a></li>
                    <li><a href="">photography</a></li>    
                </ul>
            </li>
        </ul>
    </div>


#nav {
width:48em;
margin:auto;
text-align:center;
padding-top:6em;
list-style-type:none;
}

#outerBox {
margin:0;
padding:0;
}

#linksLeft{
float:left;
border-top:2px solid #93b9bb;
border-bottom:2px solid #93b9bb;
margin-top:60px;
padding:5px 0px;
}

#linksLeft li {
display:inline-block;
padding:0 3em;
position:relative;
}
#linksLeft li ul li {
display:block;
}

#subNav li{
position:absolute;
padding:1em;
left:50%;
/*display:none;*/
}

#linksRight li{
display:inline-block;
padding:0 3em;
position:relative;
}

enter image description here

2 个答案:

答案 0 :(得分:4)

position: absolute;正在堆叠它们。将其更改为相对,并在父容器上使用绝对定位将其定位在您想要的位置。

#subNav li{
    position:relative;
    padding:1em;
    left:50%;
    /*display:none;*/
}

答案 1 :(得分:1)

问题是'#subnav li'的css。你想要的样式是ul而不是li。

CSS

#subNav {
    position:absolute;
    padding:1em;
    left:0;
    /*display:none;*/
}

#menu li{
    position:relative;
}

那就是你想要的东西