【问题标题】:Arrow not appear in navbar Bootstrap 4 menu and sub menu导航栏 Bootstrap 4 菜单和子菜单中未出现箭头
【发布时间】:2018-03-17 00:11:20
【问题描述】:

我尝试使用带有嵌套子菜单的 Twitter Bootstrap 4 中的导航栏组件,但菜单项中带有子菜单的箭头根本没有出现,我不知道为什么。

这里出现了箭头:

但没有出现在我身边:

这是我的 html 代码的基本大纲:

<div class="container-fluid">
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">

            <a class="navbar-brand" asp-controller="Home" asp-action="Index">Right Way</a>

            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>

            <div class="collapse navbar-collapse" id="navbarSupportedContent">
                <ul class="navbar-nav m-auto justify-content-center">
                    <li class="nav-item active">
                        <a class="nav-link" asp-controller="Home" asp-action="Index">Home <span class="sr-only">(current)</span></a>
                    </li>

                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            Dropdown
                        </a>
                        <ul class="dropdown-menu" id="sss" 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="#">Submenu</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>
</div>

这是我的 CSS 代码:

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

我尽力了,不知道哪里错了。

【问题讨论】:

  • 你能在 jsfiddle 中显示吗???

标签: html css bootstrap-4 asp.net-core-2.0


【解决方案1】:

Bootstrap 中没有为子菜单上的箭头编写方法。您必须自定义 css 才能这样做。

有一种在 Drop 物品上添加 &lt;span class="caret"&gt;&lt;/span&gt; 的方法,但 Bootstrap 4 已将其替换为 ::after。查看此链接了解更多信息https://getbootstrap.com/docs/4.0/migration/#dropdowns

所以想法是,您必须通过 CSS 来添加箭头,方法是获取项目是否有下拉菜单。

但我已将您的代码添加为小提琴,它在这里工作正常。

.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://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://getbootstrap.com/dist/js/bootstrap.min.js"></script>


<div class="container-fluid">
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">

            <a class="navbar-brand" asp-controller="Home" asp-action="Index">Right Way</a>

            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>

            <div class="collapse navbar-collapse" id="navbarSupportedContent">
                <ul class="navbar-nav m-auto justify-content-center">
                    <li class="nav-item active">
                        <a class="nav-link" asp-controller="Home" asp-action="Index">Home <span class="sr-only">(current)</span></a>
                    </li>

                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            Dropdown
                        </a>
                        <ul class="dropdown-menu" id="sss" 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="#">Submenu</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>
</div>

谢谢

【讨论】:

    【解决方案2】:

    将以下内容添加到您的 CSS 中

    .dropdown-toggle::after {
      transform: rotate(-90deg);
      -webkit-transform: rotate(-90deg);
      right: 100px;
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2019-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      相关资源
      最近更新 更多