網頁互動的時候經常會需要上下文選單或隱藏/顯示選單項,Bootstrap預設提供了用於顯示連結清單的可切換、有上下文的選單。而且在各種互動狀態下的選單展示需要和javascript插件配合才能使用。本文將詳細介紹Bootstrap下拉選單
# 在使用Bootstrap框架的下拉式選單時,必須呼叫Bootstrap框架提供的bootstrap.js檔案。當然,如果使用的是未編譯版本,在js資料夾下能找到一個名為「dropdown.js」的文件,也可以呼叫這個js檔案
因為Bootstrap的元件互動效果都是依賴於jQuery庫寫的插件,所以在使用bootstrap.js之前一定要先載入jquery.js才會產生效果
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css?1.1.11" rel="stylesheet"></head><body><script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js?1.1.11"></script><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js?1.1.11"></script></body></html>
在使用Bootstrap框架中的下拉選單元件時,其結構運用的正確與否非常的重要,如果結構和類別名稱未使用正確,直接影響元件是否能正常運用
1、使用一個名為「dropdown」的容器包裹了整個下拉式選單元素
<div class="dropdown"></div>
2、使用了一個
<button class="btn dropdown-toggle" type="button" data-toggle="dropdown">
3、下拉式選單項目使用一個ul列表,並且定義一個類別名為「dropdown -menu」
<ul class="dropdown-menu" role="menu">
ActionAnother actionSomething else here
# 4、透過為下拉式選單的父元素設定 #.dropup
#類,可以讓選單向上彈出(預設是向下彈出的)
<div class="dropup"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">Dropup<span class="caret"></span> </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenu1"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li> </ul></div>
#
##原理分析 Bootstrap框架中的下拉選單元件,其下拉選單項目預設是隱藏的,因為「dropdown-menu」預設樣式設定了「display:none」;當使用者點擊父選單項目時,下拉式選單將會被顯示出來;當使用者再次點擊時,下拉式選單將繼續隱藏.dropdown-menu { position: absolute;/*设置绝对定位,相对于父元素div.dropdown*/ top: 100%;/*让下拉菜单项在父菜单项底部,如果父元素不设置相对定位,该元素相对于body元素*/ left: 0; z-index: 1000;/*让下拉菜单项不被其他元素遮盖住*/ display: none;/*默认隐藏下拉菜单项*/ float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; font-size: 14px; list-style: none; background-color: #fff; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); box-shadow: 0 6px 12px rgba(0, 0, 0, .175); }現在我們來分析一下實作原理,非常簡單,透過js技術手段,為父容器「div.dropdown」新增或移除類別名稱“open”來控制下拉式選單顯示或隱藏。也就是說,預設情況,“div.dropdown”沒有類別名稱“open”,當使用者第一次點擊時,“div.dropdown”會新增類別名稱“open”;當使用者再次點擊時,“div.dropdown 」容器中的類別名稱「open」又會被移除
.open > .dropdown-menu { display: block; }擴充用法【分隔線】 在Bootstrap框架中的下拉選單提供了下拉分隔線,假設下拉選單有兩個群組,那麼群組與群組之間可以透過新增一個空的
.dropdown-menu .divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; }
<li role="separator" class="divider"></li>
#【選單標題】
在任何下拉式選單中均可透過新增標題來標示一組動作
<li class="dropdown-header">Dropdown header</li>
.dropdown-header { display: block; padding: 3px 20px; font-size: 12px; line-height: 1.42857143; color: #999; }
<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">Dropdown<span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"><li role="presentation" class="dropdown-header">第一部分菜单头部</li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation" class="divider"></li><li role="presentation" class="dropdown-header">第二部分菜单头部</li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> </ul></div>
【對齊方式】
Bootstrap框架中下拉選單預設為左對齊,如果想要讓下拉式選單相對於父容器右對齊時,可以在「dropdown-menu」上新增一個「dropdown-menu-right」類別名稱
.dropdown-menu-right { right: 0; left: auto; }
display: inline-block; margin-left: 60px;
<div class="dropdown" style="display: inline-block;margin-left: 60px;"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">Dropdown<span class="caret"></span> </button> <ul class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="dropdownMenu1"><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation" class="divider"></li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> </ul></div>
【選單項目狀態】
下拉選單項目的預設的狀態有懸浮狀態(:hover)和焦點狀態(:focus)
.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: #262626; text-decoration: none; background-color: #f5f5f5; }
<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">Dropdown<span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"><li role="presentation" class="active"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li><li role="presentation" class="divider"></li><li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">下拉菜单项</a></li> </ul></div>
#
以上是Bootstrap下拉選單實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!