css - dropdown 移动下的所有内容吗?

标签 css

我有一个将显示一些内容的下拉菜单。

<ul class="menus" style="">
    <li>hey</li>
</ul>

这是CSS:

.menus {
    width: 607px;
    background-color: white;
    border-bottom: solid 1px #9f9f9f;
    border-left: solid 1px #9f9f9f;
    border-right: solid 1px #9f9f9f;
    bottom: 20px;
    margin: 0;
    position:relative;
}

.menus li {
    list-style: none;
    display: block;
    padding: 15px;
    border-bottom: solid 1px #d6d6d6;
}

.menus li:hover {
    background-color: #71bfdb;
    color: white;
    border-bottom: solid 1px #3fb7d3;
    border-top: solid 1px #3fb7d3;
    text-decoration: none;
}

.menus li a:hover {
    text-decoration: none;
}

每当下拉菜单打开时,所有内容都会移动到底部,具体取决于列表的长度。

问题

我该如何防止这种情况发生? 如果我将位置设置为绝对位置,整个下拉菜单将变得疯狂,就像移动位置一样,而不是我想要的。

最佳答案

使用position: absolute 将其从页面流中移除(relative 表示它仍在页面流中,这就是导致它在之后推送内容的原因下来)。

您可以使用 topbottomleftright 更改绝对定位元素的显示位置> css 属性(即 top: 0px; left: 10px;)。这些像素值是相对于具有 position: relative 的第一个父元素的,因此如果您相对定位父元素,应该很容易将其显示在页面上的适当位置。

这应该可以解决您对绝对定位导致它像您所说的那样“发疯”的担忧!

关于css - dropdown 移动下的所有内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16362668/

相关文章:

javascript - 即使我关闭弹出层,弹出页面上的视频仍在播放

html - 单击 anchor 标记时更改选择选项

html - css grid 如何扩展元素占用剩余空间或如果太大则滚动?

html - 使用 html5 和 css3 标题标签和部分标签之间出现不必要的差距

javascript - bxSlider 实现 : my code is not working.

jQuery 滚动跳过一个 div

css - Visual Studio 中的自定义格式文档选项。格式化 CSS 标签

css - 我可以使用 "freeze"仅使用 CSS(或在移动设备上看起来不错的东西)的可滚动 DIV 中的元素吗?

JQuery(只讲CSS)DataTable插件的布局定位

html - 在 HTML/CSS 中构造更清晰的元素的最佳方法是什么?