html - 如何防止我的水平菜单破坏我的网站布局?

标签 html css list layout menu

这是 JSfiddle http://jsfiddle.net/sgmxh1hg/

这是 HTML:

<header>
    <nav>
        <ul id="menu">
            <li><a href="#">Home</a>
            </li>
            <li><a href="#">News</a>
            </li>
            <li id="streams">
                <a href="#">Streams</a>
                <ul id="submenu">
                    <li><a href="#">First link</a>
                    </li>
                    <li><a href="#">Second link</a>
                    </li>
                    <li><a href="#">Third link</a>
                    </li>
                </ul>
            </li>
            <li><a href="#">Tournaments</a>
            </li>
        </ul>
    </nav>
</header>

这是 CSS:

header {
    position: relative;
    display: block;
    width: 100%;
    height: 30px;
    background: -webkit-linear-gradient(#eeb418, #e59313);
    background: -o-linear-gradient(#eeb418, #e59313);
    background: -moz-linear-gradient(#eeb418, #e59313);
    background: linear-gradient(#eeb418, #e59313);
    margin: 0px;
    padding: 0px;
    font-family:"Verdana", "Arial", sans-serif;
    font-size: 1.4em;
}
ul {
    list-style-type: none;
}
nav ul {
    padding: 0px;
    margin: 0px;
}
nav li {
    float: left;
    line-height: 30px;
    vertical-align: middle;
}
#menu a {
    display: block;
    padding: 0px 10px;
    color: #f4f4f4;
    text-decoration: none;
}
#menu li:hover {
    color: white;
    background: #eeb418;
}
#menu li:hover a {
    color: white;
}
#submenu li {
    float: none;
}
#submenu li {
    float: none;
    display: none;
}
#streams:hover ul li {
    display: block;
}

如果您将鼠标悬停在菜单中的“Streams”上,当子菜单出现时,网站的布局就会中断。为什么会发生这种情况,我该如何解决?

最佳答案

实现此目的的最常见方法是对元素进行绝对定位。在这种情况下,您将绝对定位直接 ul 元素。这样做时,该元素实质上已从正常流中移除。因此,将鼠标悬停在菜单上时,其他元素将不受影响,并且不会再破坏您的布局。

Updated Example

#menu > li > ul {
    position: absolute;
    background: #eeb418;
}

关于html - 如何防止我的水平菜单破坏我的网站布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28266673/

相关文章:

javascript - 如何在jquery中一次添加一个类

html - 在 Chromium 和 Firefox/Opera 中查看时,Blogger.com 上的 CSS 行为/对齐方式不同

php - 使用 CSS 为 Moodle 表单中的选择器着色

algorithm - 在 Haskell 中用一个元素替换子列表的聪明方法

python - 如何从数据帧创建序列并将它们放入数组的数组或列表中?

html - 如何从 HTML 中提取地址和电话号码?

javascript - 在不使用任何外部插件的情况下检测 javascript/jquery 中的浏览器后退按钮

html - Bootstrap 行和列未与复选框和标签正确对齐

c# - Openwebkitsharp - COMException 未处理?

python - 一次替换列表中的项目