html - 如何正确定位我的子下拉菜单?

标签 html css drop-down-menu

我正在创建一个 2 层下拉菜单、菜单和子菜单,但我遇到了定位(相对或绝对)和/或 float 的问题。我玩过绝对,空间/间隙消失了,但我的子菜单不会飞出悬停元素旁边,只有第一个。我尝试了相对和 float 都产生了不需要的间隙,但子菜单飞出了我想要的悬停元素旁边。这是我认为问题所在的代码。 注意,我创建了一个 JSFIDDLE,以便您可以看到工作代码示例:

这是JSFIDDLE具有 HTML 和 CSS。我放置的代码有间隙,但具有正确的飞出定位。如果我需要更清楚地澄清事情,请告诉我,我会尽力。

有问题的代码 - 我认为

.sub-navigation-content {
    position: relative;
    margin: 0 0 0 150px;
    top: -10px;
    width: 180px;
    background-color: #fff;
    border: 1px solid #ccc;
    z-index: 999;
    visibility: hidden;
    box-shadow: 0 5px 10px 0 #999;
}

下面是我希望它看起来像的屏幕截图:

飞出外观正确,但飞出位置不正确:

enter image description here

飞出外观不正确,但飞出位置正确:

enter image description here

提前感谢您的浏览:)

最佳答案

所以...您可以使用绝对位置,但需要删除 top: -10px;

子导航内容的最终类:

.sub-navigation-content {
    position: absolute;
    margin: 0 0 0 150px;
    width: 180px;
    background-color: #fff;
    border: 1px solid #ccc;
    z-index: 999;
    visibility: hidden;
    box-shadow: 0 5px 10px 0 #999;
}

我认为它工作得很好。您可以根据需要通过更改边距将弹出列表移至顶部,即:

.sub-navigation-content {
    position: absolute;
    margin: -35px 0 0 150px;
    width: 180px;
    background-color: #fff;
    border: 1px solid #ccc;
    z-index: 999;
    visibility: hidden;
    box-shadow: 0 5px 10px 0 #999;
}

关于html - 如何正确定位我的子下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884948/

相关文章:

html - CSS 属性不适用于我的 ASP 页面

javascript - 使用 JS/jQuery 获取 html 表单输出

css - 如何为每个字母设置一个宽度? (字间距覆盖父宽度的 100%)

html - CSS 菜单 : Word wrap in sub menus

html - 如何设置 html "select"元素的选项样式?

javascript - 根据下拉列表的值启用/禁用复选框

html - 我希望在 <p> 内添加一个 <span> 下划线并填充 <p> 标记的剩余空间

html - Swift 如何使用包含 # 的 URL 加载 HTML 页面

用于显示李克特结果的 JQuery?

css - 在 TreeView 中定位图像(图标)