1.nav導航
⑴ 基礎結構:
一種是在<ul><li>標簽中嵌套<a>標簽的方式;
另一種是在<nav>標簽中嵌套<a>標簽的方式;
也可以使用其它標簽代替<nav>標簽或<a>標簽。
涉及到的 class樣式如下:
<!-- 使用 ul列表創建導航 --> <ul class="nav"> <li class="nav-item"> <a class="nav-link active" href="#">Active</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a> </li> </ul> <!-- 使用 <nav>標簽創建導航 --> <nav class="nav"> <a class="nav-link active" href="#">Active</a> <a class="nav-link" href="#">Link</a> <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a> </nav>
⑵ 排列對齊
默認,水平居左
.justify-content-center,水平居中
.justify-content-end,水平居右
.flex-column,垂直排列
上述樣式utility都是針對外層“.nav”容器進行設置的。
⑶ Tabs和Pills
.nav-tabs,定義導航按鈕的表單樣式
.nav-pills,定義導航按鈕的葯丸樣式
⑷ Fill 和 Justified
.nav-fill,水平填充對齊(水平空間全部占用)
.nav-justified,水平等距對齊(每一個item寬度相等)
當導航外層容器為<nav>標簽時,必須給<a>標簽添加“.nav-item”類。
⑸ 彈性布局
通過添加“.flex-*-row”類定義導航彈性布局,示例如下
<nav class="nav nav-pills flex-column nav-fill flex-sm-row"> <a class="nav-item nav-link active" href="#">Active</a> <a class="nav-item nav-link" href="#">Longer nav link</a> <a class="nav-item nav-link" href="#">Link</a> <a class="nav-item nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a> </nav>
⑹ 添加下拉
通過“.dropdown”類定義導航菜單下拉內容,下拉菜單結構示例:
<li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a> <div class="dropdown-menu"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Separated link</a> </div> </li>
⑺ 添加內容窗口
通過添加內容窗口,使得導航菜單切換時動態呈現對應的內容。
要實現動態對應切換,菜單<a>標簽的 href或 data-target屬性值必須引用窗口元素的 id值
添加<a>標簽“ data-toggle='tab / pill' ”屬性,增加“.tab-content”容器並定義子元素“.tab-pane”
<!-- 采用 ul列表的方式定義導航菜單 --> <ul class="nav nav-tabs" id="myTab" role="tablist"> <li class="nav-item" role="presentation"> <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a> </li> <li class="nav-item" role="presentation"> <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a> </li> <li class="nav-item" role="presentation"> <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Contact</a> </li> </ul> <!-- 定義動態內容窗口“.tab-content” --> <div class="tab-content" id="myTabContent"> <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">Text Content...</div> <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">Text Content...</div> <div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">Text Content...</div> </div>
2.navbar導航條
.navbar,用於定義導航條樣式,默認菜單項垂直排列
.navbar-expand{-sm|-md|-lg|-xl},用於定義不同屏幕尺寸時響應式布局,小於斷點尺寸是垂直排列
.navbar-brand,用於定義品牌Logo、文字等樣式,可以是<a>鏈接,也可以是<span>等其他元素
.navbar-nav,用於定義導航條主體菜單,支持下拉菜單項
.navbar-toggler,用於定義菜單堆疊按鈕
.collapse.navbar-collapse,用於定義需要堆疊的菜單容器,
容器的 id必須與“.navbar-toggler”的“data-toggle”屬性值相同
.form-inline,用於創建行內表單
.navbar-text,用於定義垂直居中排列的文本內容
navbar基本結構示例:
<body> <!-- 創建響應式布局的導航條,當屏幕尺寸在Medium以下時,菜單選項將堆疊顯示; 定義字體顏色(navbar-light|dark)、背景顏色(bg-light|dark|primary|…) --> <nav class="navbar navbar-expand-md navbar-light bg-light"> <!-- 定義商標/品牌字樣,可以是<a>標簽也可以是<span>等其他標簽; 標簽內容可以是 String文本,也可以引用 <img>圖片,或者是圖片+文本的形式 --> <a class="navbar-brand" href="#">Navbar</a> <!-- 定義菜單選項堆疊時的按鈕,data-target屬性值必須為 .collapse容器的 id引用 --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <!-- 創建菜單選項容器,用於包裹需要堆疊的nav導航 --> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <!-- 創建導航條主體--nav導航 --> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <!-- 創建下拉菜單項,添加 .dropdown樣式 --> <li class="nav-item dropdown"> <!-- 下拉菜單的 data-toggle屬性值為“dropdown” --> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div> </li> <li class="nav-item"> <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a> </li> </ul> <!-- 創建行內表格,用於包裹搜索框和搜索按鈕 --> <form class="form-inline my-2 my-lg-0"> <!-- 創建<input>並添加“.form-control”類,也可以使用“input groups”,示例如下: <div class="input-group"> <div class="input-group-prepend"> <span class="input-group-text" id="basic-addon1">@</span> </div> <input type="text" class="form-control" placeholder="Username"> </div> --> <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search"> <!-- button按鈕可以添加“.btn-sm|lg”類定義小尺寸、大尺寸按鈕 --> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav> </body>
3.Carousel輪播
基礎結構:
⑴ 輪播框架
carousel通常使用<div>元素作為外層容器
① 必須設置 id屬性,用於匹配對應的控制器和指示器
② 核心樣式類:.carousel、.slide,表示輪播滑動
③ data-ride="carousel",該屬性用於標記輪播在頁面加載時開始觸發
④ 除使用 data-ride屬性觸發,還可以通過 js代碼使用 carousel()方法初始化輪播
⑵ 輪播內容(圖片)
① “.carousel-inner”,用於定義包裹主體內容的 div元素的樣式
② “.carousel-item”,用於定義嵌套在“.carousel-inner”內部用於包裹<img>的 div元素的樣式
③ <img>元素除定義 src屬性外,需要添加“.d-block w-* ”樣式類
⑶ 控制器
① 通常用<a>嵌套<span>創建控制器,<a>標簽放置在“.carousel-inner”元素的后面
② “.carousel-control-prev | next”類,用於定義向前或向后按鈕的樣式
③ <a>標簽的 href屬性必須為外層容器“.carousel”的 id
④ data-slide=“prev | next”,定義幻燈片切換是相對當前位置的操作
⑷ 指示器
① 通常使用<ol>有序列表創建指示器,<ol>標簽書寫在“.carousel-inner”元素的前序位置
② <ol>的樣式類設置為“.carousel-indicators”
③ <li>元素的 data-target屬性必須引用外層容器“.carousel”的 id
④ <li>元素的 data-slide-to屬性用於定義每個節點對應的“.carousel-item”的索引,從“0”開始
⑸ 文本說明
① 描述說明可以由標題<h*>和內容<p>組合構成,嵌套在“.carousel-caption”類的 div元素中
② “.carousel-caption”類的 div元素書寫在 <img>標簽的后序位置,也可以直接添加描述文本
③ “.carousel-caption”元素還可以添加“.d-none .d-*-block”(-*-代表屏幕大小),定義響應式
⑹ 其他屬性方法
① “.carousel-fade”淡入淡出樣式,在外層容器“.carousel”中定義
② data-interval="timeValue",定義輪播間隔時間,在 “.carousel-item”中添加該屬性
③ .carousel()方法,在 js中調用,用於定義輪播的方式和特定操作
<body> <div id="carouselExample" class="carousel slide carousel-fade w-25" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carouselExample" data-slide-to="0" class="active"></li> <li data-target="#carouselExample" data-slide-to="1"></li> <li data-target="#carouselExample" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active" data-interval="1000"> <img src="./Images/rotation01.jpg" class="d-block w-100" alt="..."> <div class="carousel-caption d-none d-md-block"> <h5>First slide label</h5> <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p> </div> </div> <div class="carousel-item" data-interval="2000"> <img src="./Images/rotation02.jpg" class="d-block w-100" alt="..."> <div class="carousel-caption d-none d-md-block"> <h5>Second slide label</h5> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> <div class="carousel-item" data-interval="3000"> <img src="./Images/rotation03.jpg" class="d-block w-100" alt="..."> <div class="carousel-caption d-none d-md-block"> <h5>Third slide label</h5> <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p> </div> </div> </div> <a class="carousel-control-prev" href="#carouselExample" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#carouselExample" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </body>
參考資料來源:BootStrap中文網(https://v3.bootcss.com/)