CSS 下拉菜单项水平放置

CSS Dropdown Menu items go horizontally

我在 Whosebug 上搜索了这个问题,但我找不到任何东西。

我一直在研究 CSS 中的下拉菜单。当您将鼠标悬停在下拉菜单上时,下拉项目将水平显示而不是垂直显示。

HTML

<div id="header">header
<ul>
    <li><a>Home</a></li>
    <li><a></a>Biografie</a></li>
    <li><a>Foto's</a></li>
    <li class="dropdown">Meer
        <ul>
            <li><a>tutorials</a></li>
            <li><a>inhuren</a></li>
        </ul>
    </li>
</ul>

CSS

    /*header*/
#header {
    background-color: #5c931f;
}

#header ul {
    list-style-type: none;
}

#header li {
    width: 100px;
    border: 1px solid black;
    display: inline;
    background-color: #000;
    color: #808080;
    position: relative;
    text-align: center;
}

#header li:hover {
    color: blue;
}
/*dropdown menu*/
.dropdown ul{
    display: none;
}
.dropdown:hover ul{
    display: block;
    position: absolute;
}

如何垂直获取下拉列表项?

您主动声明 li 以在此处显示 inline:

#header li {
...
display: inline;
...
}

内联基本上意味着 "don't force wrap to next line." 将其删除,它应该返回到 block 行为。

编辑:之前我没有注意到嵌套的 li.

添加:

#header .dropdown li {
    display: block;
}

或者,仅使用内联定位直接子 li(请注意,这会影响应用于 li 的所有样式:

#header > ul > li {
width: 100px;
border: 1px solid black;
display: inline;
background-color: #000;
color: #808080;
position: relative;
text-align: center;
}

Add/Change以下代码:

.dropdown ul li{
     display: block;
}
.dropdown:hover ul{
    display: inline;
    position: absolute;
    top: 0;
    left: 0;
    float: left;
}

JS Fiddle Link:

http://jsfiddle.net/kr2jw577/

虽然它确实需要一些调整。