CSS下拉菜单显示问题

时间:2015-02-08 07:39:14

标签: html css

我正在开发一个项目,我被指派显示一个嵌套菜单,我的意思是下拉菜单,但我不知道我在这里做错了什么。任何人都可以帮助我吗?

HTML

<div id="nav">
            <ul>
                <li><a href="#">Menu Num 1</a></li>
                <li><a href="#">Menu Num 2</a>
                    <ul>
                        <li><a href="#">Sub Menu 2.1</a></li>
                        <li><a href="#">Sub Menu 2.2</a></li>
                        <li><a href="#">Sub Menu 2.3</a>
                            <ul>
                                <li><a href="#">Sub Sub Menu 2.3.1</a></li>
                                <li><a href="#">Sub Sub Menu 2.3.2</a></li>
                                <li><a href="#">Sub Sub Menu 2.3.3</a></li>
                                <li><a href="#">Sub Sub Menu 2.3.4</a></li>
                            </ul>
                        </li>
                        <li><a href="#">Sub Menu 2.4</a></li>
                    </ul>
                </li>
                <li><a href="#">Menu Num 3</a></li>
                <li><a href="#">Menu Num 4</a></li>
            </ul>
        </div>

CSS

* {
    margin: 0px;
    padding: 0px;
}
#nav ul {
    list-style-type: none;
    font-size: 0px;
}
#nav ul li {
    display: inline-block;
    position: relative;
}
#nav ul li a {
    padding: 10px;
    display: block;
    font-size: 12px;
    text-decoration: none;
    font-family: sans-serif;
    border: 1px solid #008080;
    margin: 5px;
}
#nav ul li a:hover {
    background: #a1a1a1;
}
#nav ul ul {
    display: none;
}
#nav ul li:hover > ul {
    position: absolute;
    display: block;
    width: 100%;
}

我唯一的问题是li项在每个父li下都没有正确显示。我需要一个解决方案,为了进一步的代码检查,我有一个jsFiddle链接。

2 个答案:

答案 0 :(得分:1)

尝试添加display:block;到你的顶级悬停类

#nav ul li a:hover {
    background: #a1a1a1;
    display:block;
}

我偶然发现了这对您有用http://htmldog.com/techniques/dropdowns/

答案 1 :(得分:1)

我有一个问题的解决方案。你必须在你的css表中做一些更改。我在css表中的内容上添加一个新块,它可以帮助你解决问题。

* {
margin: 0px;
padding: 0px;}
#nav ul {
list-style-type: none;
font-size: 0px;
}
#nav ul li {
display: inline-block;
position: relative;
}
#nav ul li a {
padding: 10px;
display: block;
font-size: 12px;
text-decoration: none;
font-family: sans-serif;
border: 1px solid #008080;
margin: 5px;
}
#nav ul li a:hover {
background: #a1a1a1;
}
#nav ul ul {
display: none;
}
#nav ul li:hover > ul{
position: absolute;
display: block;
width: 100%;
}
#nav ul ul li:hover > ul{
position: absolute;
margin-left:100px;
top:0px;
display: block;
width: 100%;)/* CSS Document */