CSS下拉菜单无法正常显示

时间:2014-09-07 09:51:49

标签: html css html5 css3

我的css遇到了一些问题,我真的很沮丧吗? 的 HTML:

<div id="nav">
    <ul>
        <li><a href="#">Home</a>
            <ul>
                <li><a href="#">More</a></li>
                <li><a href="#">Hawa</a></li>
            </ul>
        </li>
        <li><a href="#">Resume</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</div>

CSS:

#nav {background: #008080;position:relative;}
#nav ul {list-style:none;display:flex;position:relative;}
#nav ul li {width: 50px;display:inline-table;padding: 10px 20px;position:relative;}
#nav ul li:hover {background:#333;}
#nav ul li:hover > ul {display: block;position:absolute;margin-left:0px;width:100%;}
#nav ul li a{text-decoration:none;font-family:Verdana;color:#fff;}
#nav ul ul {display:none;}
#nav ul ul li {background: #008080;}

我的问题是:

  • 我的css下拉列表未与li元素对齐。

任何人都可以帮助我吗?

CSS Dropdown

4 个答案:

答案 0 :(得分:2)

使用负边距值http://jsfiddle.net/5tz0zszy/

我在css中做了一点改变

#nav {
background: #008080;
position:relative;
}
#nav ul {
list-style:none;
display:flex;
position:relative;
}
#nav ul li {
width: 50px;
display:inline-table;
padding: 10px 20px;
position:relative;
}
#nav ul li:hover {
background:#333;
}
#nav ul li:hover > ul {
display: block;
position:absolute;
margin-left:-60px;width:100%;
}
#nav ul li a{
text-decoration:none;
font-family:Verdana;
color:#fff;
}
#nav ul ul {
display:none;
}
#nav ul ul li {
background: #008080;
} 

答案 1 :(得分:2)

重置您的CSS *{box-sizing:border-box;padding:0; margin:0;}

将填充添加到anchors而不是list

DEMO

*{box-sizing:border-box;padding:0; margin:0;}
#nav {background: #008080;position:relative;}
#nav ul {display:flex;position:relative;}
#nav ul li {list-style:none;float:left;position:relative;}
#nav ul li:hover {background:#333;}
#nav ul li > ul {position:absolute;}
#nav ul li:hover > ul {display: block;}
#nav a{text-decoration:none;font-family:Verdana;color:#fff;display:block;clear:both;padding: 10px 20px;}
#nav ul ul {display:none;position: absolute;left: 0;}
#nav ul ul li {background: #008080;display:block;width:100%;}

enter image description here

答案 2 :(得分:2)

试试这个,你的子菜单列表中有一个“填充”

#nav ul li:hover > ul {
     display: block;
     position:absolute;
     left:0px;
     width:100%;
     padding-left:0px;
}

答案 3 :(得分:2)

简单地添加:

#nav ul li:hover > ul {
    display: block;
    position:absolute;
    margin-left:0px;
    width:100%;
    left: 0;/*Add this*/
    padding: 0;/*Add this*/
    top: 40px;/*Add this*/
}

同时更改为display: block #nav ul li {width: 50px;display:block;padding: 10px 20px;position:relative;}。检查简历菜单。

fiddle