Bootstrap ドロップダウンサブメニューがありません 質問する

Bootstrap ドロップダウンサブメニューがありません 質問する

Bootstrap 3はまだRCですが、実装しようとしていました。サブメニュークラスをどのように配置するかがわかりませんでした。CSSにクラスはなく、新しいドキュメントにもそれについて何も書かれていません。

2.xではクラス名がドロップダウンサブメニューでした

ベストアンサー1

Bootstrap 5 (2023 年更新)

親ドロップダウンが開いているときにサブメニューが閉じないように、JavaScript を追加します。これは、トグルで実行できますdisplay:block...

let dropdowns = document.querySelectorAll('.dropdown-toggle')
dropdowns.forEach((dd)=>{
    dd.addEventListener('click', function (e) {
        var el = this.nextElementSibling
        el.style.display = el.style.display==='block'?'none':'block'
    })
})

Bootstrap 5 マルチレベルドロップダウン - クリック
Bootstrap 5 マルチレベルドロップダウン - ホバー
Bootstrap 5 マルチレベルドロップダウン - ホバーとアニメーション遷移

または、Navbar ドロップダウンにこの CSS のみのメソッドを使用することもできます...

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -1px;
}

.navbar-nav li:hover > ul.dropdown-menu {
    display: block;
}

Bootstrap 5 ナビゲーションバー ドロップダウン ホバー サブメニュー (CSS のみ)


Bootstrap 4 (2018 年更新)

Bootstrap 3 RC では削除dropdown-submenuされました。Bootstrap の作者 Mark Otto 氏の言葉によれば...

「サブメニューは今のところウェブ、特にモバイルウェブではそれほど重要な位置を占めていません。3.0 では削除されます」 -https://github.com/twbs/bootstrap/pull/6342

ただし、少し 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;
}

ナビゲーションバーのサブメニューのドロップダウンホバー
ナビゲーションバーのサブメニューのドロップダウンホバー(右揃え)
ナビゲーションバーのサブメニューのドロップダウンをクリック(右揃え)
ナビゲーションバーのドロップダウンホバー(サブメニューなし)


ブートストラップ3

以下は Bootstrap 3 を使用する例です。https://codeply.com/p/T9FWGhhL0S

CS

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

サンプルマークアップ

<div class="navbar navbar-default navbar-fixed-top" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">  
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav">
                <li class="menu-item dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Drop Down<b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="menu-item dropdown dropdown-submenu">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 1</a>
                            <ul class="dropdown-menu">
                                <li class="menu-item ">
                                    <a href="#">Link 1</a>
                                </li>
                                <li class="menu-item dropdown dropdown-submenu">
                                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 2</a>
                                    <ul class="dropdown-menu">
                                        <li>
                                            <a href="#">Link 3</a>
                                        </li>
                                    </ul>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</div>

PS - 左の位置を調整するナビゲーションバーの例:https://codeply.com/p/XEiERVGcmz

おすすめ記事