【问题标题】:Bootstrap 4 third level child menu not on the right sideBootstrap 4 三级子菜单不在右侧
【发布时间】: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代码吗

标签: css wordpress bootstrap-4 menu


【解决方案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;
}

谢谢,

祝你有美好的一天。

【讨论】:

    猜你喜欢
    • 2019-04-15
    • 2018-10-20
    • 2017-06-22
    • 1970-01-01
    • 2022-01-22
    • 2019-06-28
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多