第23節 Bootstrap5下拉菜單組件用法

      On this page

      23.1 Bootstrap5下拉菜單組件

      下拉菜單(Dropdowns)和表單里面的下拉列表(Select)具有很多外觀上的相似性,但卻有著本質的不同,下拉列表使用的是Select表單,而下拉菜單(Dropdowns)使用的是div和css實現。

      下拉列表是可切換的上下文覆蓋,用于顯示鏈接列表等。它們與附帶的Bootstrap 下拉JavaScript插件交互。它們是通過點擊來切換的,而不是通過懸停來切換的;這是一個有意的設計決定,如果你需要懸停切換,可以通過js實現。

      23.2 示例

      23.2.1 單個按鈕

      將下拉菜單的切換(按鈕或鏈接)和下拉菜單包裝在dropdown中就變成了下拉菜單。

      可以從a或button元素觸發下拉列表,以更好地滿足您的潛在需求。這里顯示的示例在適當的地方使用語義ul元素,但是支持自定義標記。

      任何單個.btn都可以變成一個下拉切換,并有一些標記更改。下面是如何將它們與button元素一起使用:

      <!doctype html>
      <html lang="zh-CN">
        <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <meta name="keywords" content="">
          <meta name="description" content="">
          <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
          <title>下拉菜單</title>
        </head>
        <body>
          <div class="container">
            <br><br><br>
            <div class="dropdown">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              button下拉菜單
              </button>
              <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
              <li><a class="dropdown-item" href="#">子菜單1</a></li>
              <li><a class="dropdown-item" href="#">子菜單2</a></li>
              <li><a class="dropdown-item" href="#">子菜單3</a></li>
              <li><hr class="dropdown-divider"></li>
              <li><a class="dropdown-item" href="#">子菜單4</a></li>
              </ul>
              </div>
      
              <br><br><br>
              <div class="dropdown">
                  <a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-expanded="false">
                  a 鏈接下拉菜單
                  </a>
                  <ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
                      <li><a class="dropdown-item" href="#">子菜單1</a></li>
                      <li><a class="dropdown-item" href="#">子菜單2</a></li>
                      <li><a class="dropdown-item" href="#">子菜單3</a></li>
                      <li><hr class="dropdown-divider"></li>
                      <li><a class="dropdown-item" href="#">子菜單4</a></li>
                  </ul>
                  </div>
            </div>
           <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
        </body>
      </html>
      復制代碼

      2.1.png

      兩種菜單從外觀和體驗上看是沒有任何區別的。

      23.2.2 按鈕組

      按鈕組就是同一行中同時存在幾個按鈕,默認情況下,由于菜單默認是獨占一行的,兩個菜單靠在一起不美觀,故上面的例子加了幾個換行。

      按鈕組的使用十分簡單,直接把按鈕的<div class="dropdown">換成<div class="btn-group">,并不是把單個按鈕放在一個按鈕組容器中,這點一定要注意。

       <div class="btn-group">
                    <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                    button下拉菜單
                    </button>
                    <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
                    <li><a class="dropdown-item" href="#">子菜單1</a></li>
                    <li><a class="dropdown-item" href="#">子菜單2</a></li>
                    <li><a class="dropdown-item" href="#">子菜單3</a></li>
                    <li><hr class="dropdown-divider"></li>
                    <li><a class="dropdown-item" href="#">子菜單4</a></li>
                    </ul>
          </div>
         <div class="btn-group">
                        <a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-expanded="false">
                        a 鏈接下拉菜單
                        </a>
                        <ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
                            <li><a class="dropdown-item" href="#">子菜單1</a></li>
                            <li><a class="dropdown-item" href="#">子菜單2</a></li>
                            <li><a class="dropdown-item" href="#">子菜單3</a></li>
                            <li><hr class="dropdown-divider"></li>
                            <li><a class="dropdown-item" href="#">子菜單4</a></li>
                        </ul>
       </div>
      復制代碼

      2.2.png

      23.2.3 分割按鈕

      默認情況下,點擊按鈕任何區域,都會彈出下拉菜單,但是通過往添加dropdown-toggle-split以在下拉插入符號做適當間隔,這插入符號的兩邊水平padding減少了25%,并移除了為常規按鈕下拉菜單添加的margin-left。這些額外的變化使插入符號集中在分割按鈕中,并在主按鈕旁邊提供適當的空間。

      分割按鈕只能用于按鈕組,只有點擊按鈕上的三角符號,下拉菜單才會彈出,點按鈕其他地方都不在彈出。 下面代碼第一個是普通按鈕,第二個是分割按鈕

            <div class="dropdown">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              普通下拉菜單
              </button>
              <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
              <li><a class="dropdown-item" href="#">子菜單1</a></li>
              <li><a class="dropdown-item" href="#">子菜單2</a></li>
              <li><a class="dropdown-item" href="#">子菜單3</a></li>
              </ul>
              </div>
      
              <br>
              <div class="btn-group">
                  <button type="button" class="btn btn-secondary">分割下拉菜單</button>
                  <button class="btn btn-secondary dropdown-toggle dropdown-toggle-split" type="button" data-bs-toggle="dropdown" aria-expanded="false">
                  <span class="visually-hidden">Toggle Dropdown</span>
                  </button>
                  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
                  <li><a class="dropdown-item" href="#">子菜單1</a></li>
                  <li><a class="dropdown-item" href="#">子菜單2</a></li>
                  <li><a class="dropdown-item" href="#">子菜單3</a></li>
                  </ul>
              </div>
      
      復制代碼

      2.3.png

      23.3 下拉菜單的大小

      將或者加到button按鈕類中,就可以實現按鈕大小的設置,雖然例子中用的是按鈕組,但對單個按鈕和分割按鈕同樣適用。 下面是三種按鈕大小比較:

              <div class="btn-group">
                  <button class="btn btn-sm btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                  sm下拉菜單
                  </button>
              </div>
              <div class="btn-group">
                  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                  下拉菜單
                  </button>
              </div>
              <div class="btn-group">
                  <button class="btn btn-lg btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                  lg下拉菜單
                  </button>
              </div>
              <div class="btn-group">
                  <button class="btn btn-secondary btn-sm" type="button">
                  sm分割按鈕
                  </button>
                  <button type="button" class="btn btn-sm btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
                  <span class="visually-hidden">Toggle Dropdown</span>
                  </button>
                  </div>
      復制代碼

      13.3.1.png

      注意:后面一般情況下,為了節儉代碼,對于不需要彈出選項的菜單都省略菜單部分。

      23.4 下拉菜單的顏色

      下拉菜單的顏色與按鈕的顏色完全一致,以下是各種顏色的下拉菜單:

             <div class="btn-group">
                  <button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                    primary
                  </button>
              </div>
              <div class="btn-group">
                <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                  secondary
                </button>
            </div>
            <div class="btn-group">
              <button class="btn btn-success dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                success
              </button>
          </div>
          <div class="btn-group">
            <button class="btn btn-danger dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              danger
            </button>
          </div>
          <div class="btn-group">
            <button class="btn btn-warning dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              warning
            </button>
          </div>
          <div class="btn-group">
            <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              info
            </button>
          </div>
          <div class="btn-group">
            <button class="btn btn-light dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              light
            </button>
          </div>
          <div class="btn-group">
            <button class="btn btn-dark dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              dark
            </button>
          </div>
          <div class="btn-group">
            <button class="btn btn-link dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              link
            </button>
          </div>
      復制代碼

      13.4.1.png

      23.5 深色下拉列表

      23.5.1 深色下拉列表

      選擇較暗的下拉菜單以匹配深色導航欄或自定義樣式,方法是將dropdown-menu-dark添加到現有的dropdown-menu。不需要更改下拉項。

      <div class="dropdown">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton2" data-bs-toggle="dropdown" aria-expanded="false">
              深色下拉菜單
              </button>
              <ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="dropdownMenuButton2">
              <li><a class="dropdown-item active" href="#">Action選項1</a></li>
              <li><a class="dropdown-item" href="#">選項2</a></li>
              <li><a class="dropdown-item" href="#">選項3</a></li>
              <li><hr class="dropdown-divider"></li>
              <li><a class="dropdown-item" href="#">選項4</a></li>
              </ul>
              </div>
      復制代碼

      13.5.1.png

      23.5.2 含深色下拉列表的導航

            <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
              <div class="container-fluid">
              <a class="navbar-brand" href="#">品牌</a>
              <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDarkDropdown" aria-controls="navbarNavDarkDropdown" aria-expanded="false" aria-label="Toggle navigation">
              <span class="navbar-toggler-icon"></span>
              </button>
              <div class="collapse navbar-collapse" id="navbarNavDarkDropdown">
              <ul class="navbar-nav">
                <li class="nav-item dropdown">
                  <a class="nav-link dropdown-toggle" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                      深色下拉菜單
                  </a>
                  <ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="dropdownMenuButton2">
                      <li><a class="dropdown-item active" href="#">Action選項1</a></li>
                      <li><a class="dropdown-item" href="#">選項2</a></li>
                      <li><a class="dropdown-item" href="#">選項3</a></li>
                      <li><hr class="dropdown-divider"></li>
                      <li><a class="dropdown-item" href="#">選項4</a></li>
                      </ul>
                </li>
              </ul>
              </div>
              </div>
              </nav>
      復制代碼

      13.5.2.png

      23.6 菜單項彈出方向

      下拉菜單默認的選項默認是向下彈出的,通過在下拉菜單的容器中添加dropup、dropstart、dropend,可以分別設置向上、向左、向右彈出。

      這幾個類的用法很簡單,直接加在容器上即可。需要注意的是,這幾個方向設置都是在空間足夠情況下說的,如果向上彈出,但是上面空間不夠,則會自動改為向下彈出。向左、向右也是如此

      <div class="text-center">
            <br><br><br><br><br><br>
            <div class="dropdown dropup">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                  向上
              </button>
              <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
              <li><a class="dropdown-item active" href="#">子菜單1</a></li>
              <li><a class="dropdown-item" href="#">子菜單2</a></li>
              <li><a class="dropdown-item" href="#">子菜單3</a></li>
              </ul>
           </div> <br><br><br>
      
           <div class="dropdown dropstart">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton2" data-bs-toggle="dropdown" aria-expanded="false">
                  向左
              </button>
              <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton2">
              <li><a class="dropdown-item active" href="#">子菜單1</a></li>
              <li><a class="dropdown-item" href="#">子菜單2</a></li>
              <li><a class="dropdown-item" href="#">子菜單3</a></li>
              </ul>
           </div>
           <br><br><br>
           <div class="dropdown dropend">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton3" data-bs-toggle="dropdown" aria-expanded="false">
                  向右
              </button>
              <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton3">
              <li><a class="dropdown-item active" href="#">子菜單1</a></li>
              <li><a class="dropdown-item" href="#">子菜單2</a></li>
              <li><a class="dropdown-item" href="#">子菜單3</a></li>
              </ul>
           </div>
          </div>
      復制代碼

      13.6.1.png

      23.7 菜單項

      23.7.1 使用其他內容

      在過去下拉菜單內容必須是個鏈接,但Bootstrap5不再是這樣。現在您可以選擇在下拉菜單中使用button元素,而不是僅使用a。

      也可以使用dropdown-item文本創建非交互式下拉項。您可以隨意使用自定義CSS或文本工具進一步設計樣式。默認情況下,使用鏈接和按鈕選項,鼠標懸停在選項上會有陰影,文本選項五陰影效果。

      <div class="dropdown">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton2" data-bs-toggle="dropdown" aria-expanded="false">
              其他選項下拉菜單
              </button>
              <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton2">
              <li><button class="dropdown-item" type="button">按鈕選項1</button></li>
              <li><button class="dropdown-item" type="button">按鈕選項2</button></li>
              <li><span class="dropdown-item-text">文本選項</span></li>
      
              </ul>
              </div>
      復制代碼

      13.7.1.png

      23.7.2 激活禁用

      將active添加到下拉列表中的項以將其設置為活動樣式。 將disabled添加到下拉列表中的項以將其樣式設置為禁用。

            <div class="dropdown">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton2" data-bs-toggle="dropdown" aria-expanded="false">
              下拉菜單
              </button>
              <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton2">
              <li><a class="dropdown-item active" href="#">激活選項</a></li>
              <li><a class="dropdown-item" href="#">普通選項</a></li>
              <li><a class="dropdown-item disabled" href="#">禁用選項</a></li>
              </ul>
              </div>
      復制代碼

      13.7.2.png

      23.7.3 菜單項右對齊

      默認情況下,下拉菜單自動定位在距父菜單頂部100%的位置,并沿父菜單的左側。你可以將dropdown-menu-end添加到dropdown-menu以右對齊下拉菜單。

            <div class="btn-group">
              <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
                  菜單項右對齊 太短了看不出
              </button>
              <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownMenuButton1">
              <li><a class="dropdown-item" href="#">子菜單1</a></li>
              <li><a class="dropdown-item" href="#">子菜單2</a></li>
              <li><a class="dropdown-item" href="#">子菜單3</a></li>
              <li><hr class="dropdown-divider"></li>
              <li><a class="dropdown-item" href="#">子菜單4</a></li>
              </ul>
              </div>
      復制代碼

      13.7.3.png

      23.7.4 菜單項響應式右對齊

      如果要使用響應式對齊,請通過在button添加 data-bs-display="static"屬性禁用動態定位,并使用響應式變量類。 在dropdown-menu添加dropdown-menu{-sm|-md|-lg|-xl|-xxl}-end。

      <!doctype html>
      <html lang="zh-CN">
        <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <meta name="keywords" content="">
          <meta name="description" content="">
          <link href="../bootstrap5/bootstrap.min.css" rel="stylesheet">
          <title>下拉菜單</title>
        </head>
        <body>
          <div class="container">
            <br><br><br>
            <div class="btn-group">
              <button class="btn btn-secondary dropdown-toggle" type="button"  data-bs-toggle="dropdown"  data-bs-display="static" aria-expanded="false">
                  菜單項響應式右對齊,改變瀏覽器大小觀看
              </button>
              <ul class="dropdown-menu dropdown-menu-lg-end" aria-labelledby="dropdownMenuButton1">
              <li><a class="dropdown-item" href="#">子菜單1</a></li>
              <li><a class="dropdown-item" href="#">子菜單2</a></li>
              <li><a class="dropdown-item" href="#">子菜單3</a></li>
              <li><hr class="dropdown-divider"></li>
              <li><a class="dropdown-item" href="#">子菜單4</a></li>
              </ul>
              </div>
              
            </div>
           <script src="../bootstrap5/bootstrap.bundle.min.js" ></script>
        </body>
      </html>
      復制代碼

      這個在lg斷點前左對齊,斷點后右對齊,比較簡單就不演示了,提供完整代碼,有興趣的試一下。

      23.7.5 菜單項放入表單

      將表單放入下拉菜單中,或將其放入下拉菜單中,然后使用邊距或填充實用程序為其提供所需的負空間。

            <div class="btn-group">
              <button class="btn btn-secondary dropdown-toggle" type="button"  data-bs-toggle="dropdown" aria-expanded="false">
                  菜單項包含登錄表單
              </button>
              <div class="dropdown-menu">
                  <form class="px-4 py-3">
                  <div class="mb-3">
                  <label for="exampleDropdownFormEmail1" class="form-label">電子郵箱</label>
                  <input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="email@example.com">
                  </div>
                  <div class="mb-3">
                  <label for="exampleDropdownFormPassword1" class="form-label">密碼</label>
                  <input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password">
                  </div>
                  <div class="mb-3">
                  <div class="form-check">
                    <input type="checkbox" class="form-check-input" id="dropdownCheck">
                    <label class="form-check-label" for="dropdownCheck">
                      記住狀態
                    </label>
                  </div>
                  </div>
                  <button type="submit" class="btn btn-primary">登錄</button>
                  </form>
                  <div class="dropdown-divider"></div>
                  <a class="dropdown-item" href="#">還沒賬戶,點此注冊</a>
                  <a class="dropdown-item" href="#">忘記密碼</a>
              </div>
              </div>
      復制代碼

      13.7.5.png

      限于篇幅,本文對下拉菜單做了簡要介紹,一般情況下足夠平常的使用了,如果你需要更詳細的了解下拉菜單用法,請參考Bootstrap中文文檔 >組件 >下拉菜單相關章節。

      今天的課程就到這里,請關注我,及時學習 俺老劉原創的《Bootstrap5零基礎到精通》第24節 Bootstrap5分頁導航Pagination組件用法,從字面也可以看出,按鈕組就是多個按鈕的組合。

      如果這篇文章對你有幫助,記得隨手點贊哦!

      返回頂部
      主站蜘蛛池模板: 美女视频黄a视频全免费网站一区| 一区二区三区在线视频播放| 人妻内射一区二区在线视频| 亚洲AV午夜福利精品一区二区| 精品国产一区二区三区无码| 精品人妻一区二区三区毛片| 国产一区精品视频| 日韩人妻无码一区二区三区久久| 一区二区三区在线视频播放| 国内精品一区二区三区最新| 亚洲蜜芽在线精品一区| 国产一区二区精品久久凹凸| 国产精品一区二区综合| 精品国产鲁一鲁一区二区| 日韩一区二区久久久久久| 一区二区免费电影| 日韩熟女精品一区二区三区 | 国产一区二区三区亚洲综合| 亚洲Av高清一区二区三区| 久久se精品一区二区国产 | 国产精品成人99一区无码| 国产精品夜色一区二区三区 | 日本大香伊一区二区三区| 人妻无码一区二区视频| 精品无码综合一区| 久久国产香蕉一区精品| 波多野结衣免费一区视频| 中文无码精品一区二区三区| 果冻传媒董小宛一区二区| 亚洲日韩精品一区二区三区| 熟女少妇精品一区二区| 国产精品99无码一区二区| 一区二区三区在线观看视频| 国产免费伦精品一区二区三区 | 另类ts人妖一区二区三区| 精品少妇人妻AV一区二区| 日韩久久精品一区二区三区| 午夜视频久久久久一区 | 无码人妻一区二区三区在线视频 | 免费一区二区无码视频在线播放| 日本一区二区三区久久|