Разработчики Bootstrap начиная с третьей версии удалили поддержку подменю в dropdown из-за того, что им никто не пользуется и на мобильных эта функция не актуальна. Ниже представлены примеры как сделать подменю.
HTML код
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
Dropdown button <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">1-й уровень</a></li>
<li class="dropdown-submenu">
<a tabindex="-1" href="#">1-й уровень</a>
<ul class="dropdown-menu">
<li><a href="#">2-й уровень</a></li>
<li class="dropdown-submenu">
<a tabindex="-1" href="#">2-й уровень</a>
<ul class="dropdown-menu">
<li><a href="#">3-й уровень</a></li>
<li><a href="#">3-й уровень</a></li>
</ul>
</li>
</ul>
</li>
<li class="dropdown-submenu">
<a tabindex="-1" href="#">1-й уровень</a>
<ul class="dropdown-menu">
<li><a href="#">2-й уровень</a></li>
<li class="dropdown-submenu">
<a tabindex="-1" href="#">2-й уровень</a>
<ul class="dropdown-menu">
<li><a href="#">3-й уровень</a></li>
<li><a href="#">3-й уровень</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
CSS
.dropdown-submenu {
position: relative;
}
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
-webkit-border-radius: 0 6px 6px 6px;
-moz-border-radius: 0 6px 6px 6px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
.dropdown-submenu > a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #cccccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover > a:after {
border-left-color: #ffffff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
left: -100%;
margin-left: 10px;
-webkit-border-radius: 6px 0 6px 6px;
-moz-border-radius: 6px 0 6px 6px;
border-radius: 6px 0 6px 6px;
}
HTML код
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" crossorigin="anonymous"></script>
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown">
Dropdown button
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">1-й уровень</a>
<a class="dropdown-item submenu" href="#">1-й уровень</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">2-й уровень</a>
<a class="dropdown-item submenu" href="#">2-й уровень</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">3-й уровень</a>
<a class="dropdown-item" href="#">3-й уровень</a>
</div>
</div>
<a class="dropdown-item submenu" href="#">1-й уровень</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">2-й уровень</a>
<a class="dropdown-item submenu" href="#">2-й уровень</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">3-й уровень</a>
<a class="dropdown-item" href="#">3-й уровень</a>
</div>
</div>
</div>
</div>
CSS
.dropdown-menu .dropdown-menu {
top: auto;
left: 100%;
transform: translateY(-2rem);
}
.dropdown-item + .dropdown-menu {
display: none;
}
.dropdown-item.submenu::after {
content: '▸';
margin-left: 0.5rem;
}
.dropdown-item:hover + .dropdown-menu,
.dropdown-menu:hover {
display: block;
}
вот пример: https://jsfiddle.net/Taras_wind/zxfascmh/2/
Я попробовал с Codepen (https://codepen.io/surjithctly/pen/PJqKzQ) - всё получилось, но там другая проблема - второй уровень появляется лишь после второго щелчка мышью, что не слишком хорошо. Видимо проблема со скриптом.
У вас скрипты специализированные или можно обойтись только с официального сайта (https://getbootstrap.com/)?
С уважением ВВГ
С уважением ВВГ
Авторизуйтесь, чтобы добавить комментарий.