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将两个导航栏菜单按钮对齐到右侧[重复]