【问题标题】:How to align bootstrap dropdown menus underneath selected nav item如何在选定的导航项下方对齐引导下拉菜单
【发布时间】:2018-05-31 03:30:32
【问题描述】:

我试图让“Big Dropdown”菜单显示在导航项的正下方。我已经为菜单设置了最大宽度,但我似乎无法让它正确对齐。我更喜欢一个全响应的解决方案和“最干净”的方式来实现这一点,而不必调整所有的小事情。

绿色框是我希望下拉菜单“自然”定位的位置,下拉菜单是其当前的错误位置,因此理想的解决方案是如果我要添加更多导航项并且每个下拉菜单将分别放置在他们的导航项目下。

HTML

<li class="nav-item dropdown position-static">
    <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" 
    id="navbarDropdown" role="button">Big Dropdown</a>
    <ul class="dropdown-menu megamenu midmenu ">
        <div class="row">
            <li class="col-md-6">
                <ul>
                    <h6 class="list-header">List Header</h6>
                    <hr>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                </ul>
            </li>
            <li class="col-md-6">
                <ul>
                    <h6 class="list-header">List Header</h6>
                    <hr>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                    <li>
                        <a href="#">Lorem Ipsum</a>
                    </li>
                </ul>
           </li>
        </div>
    </ul>
</li>

CSS

nav.main .megamenu {
    padding: 20px 20px;
    position: absolute;
    top: auto;
    left: 0;
    right: 0;
    max-width: 1500px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

nav.main .midmenu {
    position: absolute;
    padding: 20px 20px;
    float: left;
    top: auto;
    left: auto;
    right: auto;
    max-width: 650px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

Codepen - 请参阅“大下拉菜单”
https://codepen.io/GH5ST/pen/GGgWPK

【问题讨论】:

  • 我的回答对你不起作用吗?你投了反对票?
  • 我没有否决你的回答我不知道为什么它消失了..
  • 你现在能看到吗?如果它不适合你,请告诉我。我会删除它

标签: html css bootstrap-4


【解决方案1】:

由于您标记了您正在使用 Bootstrap 4,因此实际上有一个内置类来右对齐下拉列表,称为 dropdown-menu-right。该文档可以在 Bootstrap 4 文档的Menu alignment section 中找到。

请注意,由于您使用的是导航菜单,因此这会将下拉菜单与页面右侧对齐,而不是下拉按钮的右侧。

更新后的Codepen示例可以在here找到。

编辑:我forked the Codepen example again 并添加了一些 Javascript 和 CSS 以使下拉菜单与下拉按钮而不是屏幕右侧对齐。

【讨论】:

  • 没问题!此外,您可能需要调整我添加的媒体查询以“禁用”侦听器,现在它只是使用right: auto !important; 将下拉菜单强制到右侧。
【解决方案2】:

添加此样式

.dropdown-menu.megamenu.midmenu.show {
    right: 0;
  }
  .dropdown-menu.show {
    right: 0;
  }

【讨论】:

  • 谢谢!!该解决方案也很有效,但上述解决方案更适合我的目的。
  • 我同意你的看法。这就是为什么我之前删除了我的答案。只是想确定它是否有效。谢谢
猜你喜欢
  • 2023-02-20
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
相关资源
最近更新 更多