【问题标题】:How to properly position my sub-drop down menu?如何正确定位我的子下拉菜单?
【发布时间】:2013-06-03 01:19:30
【问题描述】:

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

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

有问题的代码 - 我认为

.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;
}

下面是我想要的屏幕截图:

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

飞出看起来不正确,但飞出位置正确:

提前感谢您的浏览:)

【问题讨论】:

    标签: html css drop-down-menu


    【解决方案1】:

    So So ...你可以使用绝对位置,但你需要删除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;
    }
    

    【讨论】:

    • 我一直在努力解决这个问题,我不敢相信它就像删除 top 并调整边距一样简单。非常好的工作,谢谢你:)
    【解决方案2】:

    只需给你的.sub-navigation-content 类一个绝对定位而不是相对定位。

    .sub-navigation-content {
      position: absolute;
    }
    

    您肯定还会将顶部调整为至少具有0 的值。

    【讨论】:

    • 感谢您的回答,但我之前已经尝试过,结果是弹出菜单不会在悬停项目旁边弹出。所有的飞出都停留在菜单顶部的一个位置:(看看你的建议是什么样的jsfiddle.net/rVec3/2
    • 是的,你需要去掉Top,如果你有它的价值,所有的parnt列表的飞出都会留在顶部。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多