1. 程式人生 > >Bootstrap下拉選單、按鈕式下拉選單

Bootstrap下拉選單、按鈕式下拉選單

1. 概述

下拉選單使用頻率也是比較高的,比較常見的使用場景是在導航選單欄,某個主選單含有下拉的子選單。

Bootstrap為下拉選單提供了兩種實現方式,即普通的下拉選單還有按鈕式的下拉選單。我們先看一張圖觀察下,從圖中可以看出,普通下拉選單和按鈕式下拉選單的樣式基本相同,唯一比較明顯的區別是:普通下拉選單相當於選單,前後自動換行;而按鈕式的下拉選單相當於按鈕,前後不換行。

2. 下拉選單

2.1 普通下拉選單

先來看下普通下拉選單的示例程式碼,通過dropdown描述一個下拉選單,下拉選單的主按鈕通過dropdown-toggle類描述,下拉子選單的部分是dropdown-menu類描述的ul元素。最後注意下拉箭頭是通過caret

樣式類實現的。

				普通下拉選單:
                <div class="dropdown">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>

效果如下:

2.2 更換顏色

其實就是更換按鈕的樣式類,如下程式碼將預設按鈕改為了首選按鈕btn-primary

				更換顏色:
                <div class="dropdown">
                    <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>

效果如下:

2.3 更換尺寸

其實就是通過btn-lgbtn-sm更換按鈕的尺寸。

				更換尺寸:
                <div class="dropdown">
                    <button class="btn btn-default btn-lg dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>

效果如下:

2.4 新增分割線

可以在子選單之間新增分割線,示例程式碼:

				新增分割線:
                <div class="dropdown">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>

效果如下:

2.5 選單分組

如果子選單較多,還可以進行分組:

				選單分組:
                <div class="dropdown">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">分組1</li>
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                        <li class="dropdown-header">分組2</li>
                        <li><a href="#">命令3</a></li>
                        <li><a href="#">命令4</a></li>
                    </ul>
                </div>

效果如下:

2.6 上拉選單

這個實現比較奇葩,可以讓子選單彈出方向改變,真實使用場景我都沒見過。只需要將dropdown樣式類改為dropup即可。

				上拉選單:
                <div class="dropup">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>

3. 按鈕式下拉選單

按鈕式下拉選單的實現,只需要將之前的dropdown樣式類改為btn-group即可,有個例外是上拉選單,需要將dropup改為btn-group和dropup兩個樣式類。

具體程式碼如下:

			<div class="col-md-12">
                按鈕式下拉選單:
                <div class="btn-group">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>
                更換顏色:
                <div class="btn-group">
                    <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>
                更換尺寸:
                <div class="btn-group">
                    <button class="btn btn-default btn-lg dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>
                新增分割線:
                <div class="btn-group">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>
                選單分組:
                <div class="btn-group">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">分組1</li>
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                        <li class="dropdown-header">分組2</li>
                        <li><a href="#">命令3</a></li>
                        <li><a href="#">命令4</a></li>
                    </ul>
                </div>
                上拉選單:
                <div class="btn-group dropup">
                    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
                        下發命令
                        <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="#">命令1</a></li>
                        <li><a href="#">命令2</a></li>
                    </ul>
                </div>
            </div>