WEB前端第五十二課——BootStrap組件(四)nav、navbar、carousel


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/)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM