Bootstrap 4 三级子菜单不在右侧

Posted

技术标签:

【中文标题】Bootstrap 4 三级子菜单不在右侧【英文标题】:Bootstrap 4 third level child menu not on the right side 【发布时间】:2020-12-20 21:10:16 【问题描述】:

我在 Wordpress 中使用以下 Bootstrap 4 主题:https://cutt.ly/QfzDnKv 我正在使用带有第三级子菜单的 Bootstrap 4 导航栏,这不受 Bootstrap 4 默认支持。这就是我在 Bootstrap 4 中使用这个自定义 CSS 的原因:

https://www.codeply.com/go/ji5ijk6yJ4

.navbar-nav li:hover > ul.dropdown-menu 
    display: block;

.dropdown-submenu 
    position:relative;

.dropdown-submenu>.dropdown-menu 
    top: 0;
    left: 100%;
    margin-top:-6px;


/* rotate caret on hover */
.dropdown-menu > li > a:hover:after 
    text-decoration: underline;
    transform: rotate(-90deg);
 

我现在有一种情况,我的子菜单将显示在每个父菜单的底部:

在上面的示例中,Exact 需要显示在父菜单的右侧(如 codeply 示例)。谁能告诉我我必须调整什么才能让它以正确的方式显示?我已经为此苦苦挣扎了 1 周。

谢谢!

网格

【问题讨论】:

你能分享完整的html代码吗 【参考方案1】:

试试这个代码。

.navbar-nav li:hover > ul.dropdown-menu 
    display: block;

.dropdown-submenu 
    position:relative;

.dropdown-submenu>.dropdown-menu 
    top: 0;
    left: 100%;
    margin-top:-6px;


/* rotate caret on hover */
.dropdown-menu > li > a:hover:after 
    text-decoration: underline;
    transform: rotate(-90deg);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-expand-md navbar-light bg-light">
    <div class="navbar-collapse" id="navbarNavDropdown">
        <ul class="navbar-nav">
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a>
                <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                    <li><a class="dropdown-item" href="#">Action</a></li>
                    <li><a class="dropdown-item" href="#">Another action</a></li>
                    <li class="dropdown-submenu"><a class="dropdown-item dropdown-toggle" href="http://google.com">Google</a>
                        <ul class="dropdown-menu">
                            <li><a class="dropdown-item" href="#">Submenu</a></li>
                            <li><a class="dropdown-item" href="#">Submenu0</a></li>
                            <li class="dropdown-submenu"><a class="dropdown-item dropdown-toggle" href="#">Submenu 1</a>
                                <ul class="dropdown-menu">
                                    <li><a class="dropdown-item" href="#">Subsubmenu1</a></li>
                                    <li><a class="dropdown-item" href="#">Subsubmenu1</a></li>
                                </ul>
                            </li>
                            <li class="dropdown-submenu"><a class="dropdown-item dropdown-toggle" href="#">Submenu 2</a>
                                <ul class="dropdown-menu">
                                    <li><a class="dropdown-item" href="#">Subsubmenu2</a></li>
                                    <li><a class="dropdown-item" href="#">Subsubmenu2</a></li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
</nav>

【讨论】:

在 Stack Overflow 上不鼓励仅使用代码的答案,因为它们没有解释它如何解决问题。如果您编辑您的答案以解释此代码的作用以及它如何回答问题,它将使其对 OP 以及其他有类似问题的用户更有用。【参考方案2】:

我实际上是通过使用 Bhautik 的答案解决了这个问题。我逐行尝试了他的代码,得出的结论是可以使用以下CSS:

.dropdown-submenu>.dropdown-menu 
    top: 0;
    left: 100%;
    margin-top:-6px;

谢谢,

祝你有美好的一天。

【讨论】:

以上是关于Bootstrap 4 三级子菜单不在右侧的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 4将两个导航栏菜单按钮对齐到右侧[重复]

Bootstrap 4 Navbar:右对齐下拉菜单在右侧打开:溢出[重复]

当前菜单中的 Bootstrap 3 子菜单

Bootstrap 4导航栏折叠菜单右对齐

Bootstrap 5:下拉菜单在屏幕右侧消失

Bootstrap 下拉菜单显示在右侧