Bootstrap

Подменю в dropdown Bootstrap 3

В Bootstrap 3 разработчики удалили поддержку подменю из-за того, что им никто не пользуется и на мобильных эта функция не актуальна. Ниже представлен пример как его сделать.

HTML код меню

<div class="dropdown">
    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
        Dropdown <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>
    </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;
}

Пример:

15 декабря 2016