Bootstrap下拉延长下拉列表(嵌套)

时间:2016-10-25 01:56:08

标签: css html5 twitter-bootstrap drop-down-menu

我想知道是否可以延长下拉菜单。我想你一旦我描述它就会明白我的意思,但我只是不知道它的名字。所以打开初始下拉列表后。您可能有子元素可能会打开另一个下拉式菜单,在这种情况下向右,这可能会提供更精确的选项。例如......

Menu
  v
option1 -> precise1
option2    precise2
           precise3

组件文档中似乎没有任何描述此行为的内容。

1 个答案:

答案 0 :(得分:0)

这是我为另一个项目写的。

HTML

    <div class="dropdown">
    <a id="dLabel" role="button" data-toggle="dropdown" class="btn btn-primary" data-target="#" href="#">
        Menu <span class="caret"></span>
    </a>
    <ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu">
        <li><a href="#">Option 1</a></li>
        <li class="dropdown-submenu">
            <a tabindex="-1" href="#">Option 2</a>
            <ul class="dropdown-menu">
                <li><a tabindex="-1" href="#">Precise 1 </a></li>

                <li><a href="#">Precise 2</a></li>
                <li class="dropdown-submenu">
                    <a href="#">More precise </a>
                    <ul class="dropdown-menu">
                        <li><a href="#">Precise 3</a></li>
                        <li><a href="#">Precise 4</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;
    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: #ccc;
    margin-top: 5px;
    margin-right: -10px;
}

.dropdown-submenu:hover>a:after {
    border-left-color: #fff;
}

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

Codepen Example