[Bootstrap]7天深入Bootstrap(4)CSS組件


Bootstrap框架的三大核心之二:組件。 組件也是最核心的地方,因為絕大部分的網頁都必須利用組件才能構建出絢麗的頁面。

組件包括:Icon圖標(Glyphicon)、 下拉菜單(Dropdown)、按鈕組(Button group)、按鈕下拉菜單(Button dropdown)、輸入框組(Input group)、導航 (Nav)、導航條(Navbar)、面包屑導航(Breadcrumb)、分 頁導航(Pagination)、標簽(Label)、徽章(Badge)、大屏幕 展播(Jumbotron)、頁面標題(Pageheader)、縮略圖 (Thumbnail)、警告框(Alert)、進度條(Progress bar)、媒 體對象(Media object)、列表組(Listgroup)、面板(Panel) 和窪地(Well),總計20種。

 

本節目錄

 

所有組件

小圖標

小圖標(icon)是一個優秀網站不可缺少的一組元素,小圖標的點綴可以使網站瞬間提升一個檔次。bs提供了 200個小圖標。

使用的時候必須同時使用兩個樣式,即.glyphicon和以.glyphicon-*開頭的樣式。

新版icon就是利用@font-face特性,並結合一定的字體, 來制作Web頁面中的icon圖標。

 

優點

這種形式不僅可以讓字體無損失放大,還可以簡單地通過color: #ff0的形式設置圖標的顏色。

 

2種使用方式

<span class="glyphicon glyphicon-glass text-danger" style="font-size: 50px;"></span>
<i class="glyphicon glyphicon-glass text-success"></i>

  

3種場景使用場景

button、li、input-group

 

擴展

圖標是利用字體和content屬性來實現的,所以下面這2個是等效的

<span class="glyphicon glyphicon-glass"></span>
<span class="glyphicon">&#xe001</span>

 

下拉菜單

使用

.dropdown樣式是大容器,.dropdown-menu是菜單li元素的容器,而.divider樣式在li元素上的顯示效果是分隔符。

由於menu樣式中設置display:none,通過設置open樣式,可以打開菜單。

菜單標題,通過設置.dropdown-header樣式可以設置標題。

支持active和disabled

 

多級菜單

在bs3.x版本默認是沒有多級菜單的,在bs2.x中有,如果要使用,先添加擴展樣式

.dropdown-submenu {
    position: relative; /* 相對定位 */
}

    .dropdown-submenu > .dropdown-menu {
        top: 0;
        left: 100%; /* 右側開始對齊 */
        margin-top: -6px;
        margin-left: -1px;
        -webkit-border-radius: 0 6px 6px 6px;
        -moz-border-radius: 0 6px 6px 6px;
        border-radius: 0 6px 6px 6px;
    }

    .dropdown-submenu:hover > .dropdown-menu {
        display: block;
    }

.dropup .dropdown-submenu > .dropdown-menu {
    top: auto;
    bottom: 0; /* 向上方向 */
    margin-top: 0;
    margin-bottom: -2px;
    -webkit-border-radius: 5px 5px 5px 0;
    -moz-border-radius: 5px 5px 5px 0;
    border-radius: 5px 5px 5px 0;
}

.dropdown-submenu > a:after {
    display: block;
    float: right;
    width: 0;
    height: 0;
    margin-top: 5px;
    margin-right: -10px;
    border-color: transparent;
    border-left-color: #cccccc; /* 三角符號設置*/
    border-style: solid;
    border-width: 5px 0 5px 5px;
    content: " ";
}

.dropdown-submenu:hover > a:after {
    border-left-color: #cccccc; /* 鼠標移動時的三角符號設置*/
}

.dropdown-submenu.pull-left {
    float: none; /* 取消子菜單的向右浮動 */
}

    .dropdown-submenu.pull-left > .dropdown-menu {
        left: -100%; /* 向右浮動的時候,子菜單應該從最左側開始對齊計算 */
        margin-left: 10px;
        -webkit-border-radius: 6px 0 6px 6px;
        -moz-border-radius: 6px 0 6px 6px;
        border-radius: 6px 0 6px 6px;
    }
.dropdown-submenu

然后在菜單項上添加dropdown-submenu樣式。

 

一個簡單的多級菜單

<div class="dropdown open">
            <ul class="dropdown-menu">
                <li><a>我的積分</a></li>
                <li><a>我的流量</a></li>
                <li class="divider"></li>
                <li class="dropdown-submenu">
                    <a>個人中心</a>
                    <ul class="dropdown-menu">
                        <li><a>我的積分</a></li>
                        <li><a>我的流量</a></li>
                        <li class="divider"></li>
                        <li><a>個人中心</a></li>
                    </ul>
                </li>
            </ul>
</div>

 

 

按鈕組

只需要在多個 按鈕外部使用一個容器元素(比如div),然后在容器元素上應用.btn-group樣式即可.

按鈕工具欄主要是將多個按鈕組排列在一起,工具欄是一個容器,在容器元素上應用.btn-toolbar樣式。

支持lg、sm尺寸樣式

垂直分組.btn-group-vertical

.btn-group-justified樣式提供了一個特殊的功能,就是在一個.btn-group容器上,如果使用了該樣式,則所有的按鈕都會 100%充滿容器元素。

 

按鈕下拉菜單

下拉菜單需要滿足一個特殊的需求,那就是必須有position: relative.(而.dropdown、btn-group樣式正好都有該屬性)

組合下拉菜單

 

分離下拉菜單(實際上就是加一個單獨按鈕。)

 

向上彈起的

只需要在容器上加上dropup樣式即可

<div class="btn-group dropup">
                <a href="#" class="btn btn-default">
                    向上彈起
                </a>
                <a class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
                <ul class="dropdown-menu">
                    <li><a href="#">1111111</a></li>
                    <li><a href="#">2222222</a></li>
                </ul>
</div>
向上彈起

 

 

輸入框組

只需要在容器上應用.input-group樣式,然后對需要在input前后顯示的個性元素上應用.input-group-addon樣式。

在.input-group-addon樣式里,不僅可以放置label和icon,也可以放置復選框(checkbox)和單選框(radio)。

支持lg,sm尺寸樣式。

按鈕作為addon,由於btn樣式本身就有大小顏色內外邊距樣式。.btn樣式又單獨設置了一 個.input-group-btn樣式

擴展:

  1. 請盡量避免在select元素上使用該功能,因為WebKit瀏覽器 不完全支持input-group組件的特性。
  2. 不要直接將.input-group和.form-group混合使用,因 為.input-group是一個獨立的組件。
  3. 如果讓icon融為一體,記得第3節中的feedback功能

 

導航

設置容器樣式,即可實現不同的導航效果

選項卡導航是最常用的一種導航方式,尤其是在多內容編輯的時候,需要通過選項卡進行分組顯示

選項卡導航:nav nav-tabs

膠囊式導航:nav nav-pills

垂直導航: nav nav-pills nav-stacked  (nav-tabs垂直導航效果老版本v2.x系列可以,3.x新版本不可以)

自適應導航:nav nav-pills nav-justified  nav nav-tabs nav-justified

 

導航條

基礎導航條是在普通導航的基礎上進行改進實現的,但實現原理復雜得多

首先在普通導航的 ul元素上應用.navbar-nav樣式,然后在外部父元素容器上應用.navbar樣式以及.navbar-default樣式即可實現。

navbar-brand樣式的鏈接,表示該元素是導航條的名稱,起到提醒的目的

基礎導航條

<nav class="navbar navbar-default">
        <div class="navbar-header">
            <a href="#" class="navbar-brand">Never、C</a>
        </div>
        <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li>
                <a href="#" data-toggle="dropdown">Center<span class="caret"></span></a>
                <ul class="dropdown-menu">
                    <li><a>11111111</a></li>
                    <li><a>22222222</a></li>
                    <li class="divider"></li>
                    <li><a>11111111</a></li>
                </ul>
            </li>
            <li><a href="#">About</a></li>
        </ul>
</nav>
基礎導航條

 

導航條中的表單navbar-form

<nav class="navbar navbar-default">
        <div class="navbar-header">
            <a href="#" class="navbar-brand">Never、C</a>
        </div>
        <form class="navbar-form pull-left">
            <div class="form-group">
                <input type="text" class="form-control" name="name" value="" placeholder="Search" />
            </div>
            <a href="#" class="btn btn-default">Submit</a>
        </form>
        <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
        </ul>
</nav>

本質navbar-form設置為inline-block效果,pull-left左浮動效果。

 

固定

提供了兩個強有力的樣式支持這一特性,分別是:.navbar-fixed-top支持最頂部固定,.navbar-fixedbottom支持最底部固定。

 

響應式導航條

屏幕大小的分界點是768像素, 在小於768像素的時候,所有的菜單默認會隱藏,單擊右邊的icon圖標,所有默認的菜單就會展示出來

使用

右上角的button圖標(icon)必須包含在.navbar-toggle樣式 里

默認隱藏收縮的代碼都 在一個樣式為.navbar-responsive-collapse的div里,並且該div應用了navbar-collapse和collapse兩個樣式。

    <nav class="navbar navbar-default">
        <div class="navbar-header">
            <!-- .navbar-toggle樣式用於toggle收縮的內容,即:collapse樣式所在的元素-->
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <!--確保無論是寬屏還是窄屏,navbar-brand都會顯示 -->
            <a class="navbar-brand" href="#">Brand</a>
        </div>
        <!-- 屏幕寬度小於768像素時,該div內的內容默認都會隱藏(通過單擊icon-bar所在的圖標,可以再展開);大於768像素時默認顯示 -->
        <div class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li class="active"><a href="#">主頁</a></li>
                <li><a href="#">作品</a></li>
                <li><a href="#">圖書</a></li>
                <li class="dropdown">
                    <a data-toggle="dropdown" class="dropdown-toggle" href="#">下拉菜單 <b class="caret"></b></a>                <ul class="dropdown-menu">                    <li><a href="#">子菜單1</a></li>                    <li><a href="#">子菜單2</a></li>                    <!--省略菜單 -->                </ul>
                </li>
            </ul>
        </div>
</nav>
響應式導航條

 

面包屑導航

面包屑(Breadcrumb)一般用於導航,表示當前頁面所在的位置(或功能插件)。

在容器上(一般為ul)添加breadcrumb類即可。

 

分頁導航

一個用戶體驗良好的分頁組件會得到訪問用戶的良好評價。bs為大家提供了兩種分頁組件,一種是帶多個頁碼的組件(pagination),一種是只有上一頁、下一頁的翻頁組件 (pager)。

實際上pager加了居中效果,pagination實現類似btn-group效果

 

標簽

在網頁排版的時候,我們經常要高亮一些標題里的特殊字符或者整個字符, bs供了一個.label樣式用於實現高亮的功能。

label支持5種基本顏色和1個默認灰。

<span class="label label-info">info</span>

 

徽標

在開發交互式系統或者信息系統時,經常要顯示一些最新收到的消息、需要有多少審批的消息等。Bootstrap的.badge樣式提 供了很好的效果,只需要在span或者label上應用該樣式即可

.badge樣式有個遺憾就是,它沒有定義多風格顏色的設定。

使用以下擴展樣式,即可實現4種基本顏色

.badge-danger {
    background-color: #d9534f;
}

.badge-success {
    background-color: #5cb85c;
}

.badge-warning {
    background-color: #f0ad4e;
}

.badge-info {
    background-color: #5bc0de;
}
badge color

 

大屏

在設計網頁布局的時候,經常會有一些大屏(或大塊頭)內容的顯示,.jumbotron樣式提供的展示效果正是我們所需要的。

在.jumbotron內部應用h1和p元素時,這兩種元素也會進行相應的調整。

如果jumbotron放在container樣式內,則顯示圓角;如果不放在里面,就不會顯示圓角。而一般我們會在大屏里面套一個容器。

        <div class="jumbotron">
            <div class="container">
                <h1>Hello World</h1>
                <p>.Net ......</p>
                <p><a href="#" class="btn btn-primary">Learn</a> </p>
            </div>
        </div>

  

 

縮略圖

結合12柵格系統,並使用.thumbnail樣式,可以將圖像、視頻、文本展示得更加漂亮。

縮略圖有兩種使用方式,一種 用於僅顯示圖片,另外一種利用容器將圖片和標題顯示在一起。

可以在.caption樣式的元素容器內,添加任意風格的元素,比如按鈕、鏈接等。本質加了個padding和color。

將以下內容放置一個row中,則會在大屏下一行顯示3個,中屏顯示2個,小屏顯示1個

<div class="col-md-6 col-lg-4">
                <div class="thumbnail">
                    <img src="url" alt="Alternate Text" />
                    <div class="caption">
                        <h4>MicroSoft</h4>
                        <p>MicroSoft ....</p>
                        <p>
                            <a class="btn btn-primary">Up</a>
                            <a class="btn btn-default">Down</a>
                        </p>
                    </div>
                </div>
</div>

  

 

 

警告框

在交互式網頁中,經常要根據用戶操作的上下文為用戶提供 靈活的提示消息,比如操作成功、警告提示、錯誤信息。

默認的警告框是用帶有alert樣式的div元素容器包含的(p元 素也可以),內部可選地添加一個關閉按鈕button元素,關閉按鈕要確保設置button元素的屬性值data-dismiss="alert", 原因是警告框的關閉功能是通過JavaScript檢測該屬性實現的.

alert-danger(危險紅)、alert-success(成功綠)、alert-info(信息藍)、alert-warning(警告黃)

在警告框中,還對h4、hr、a標簽做了處理。組合起來非常酷。

<div class="alert alert-success">
                <a href="#" class="close" data-dismiss="alert">x</a>
                <h4>Warning</h4>
                <hr />
                <p>Check your write,or look <a href="#">help</a></p>
</div>

 

  

進度條

進度條(Progress bar)是一個比較常見的網頁效果,一般用於表示加載、跳轉或動作正在執行中的狀態

progress用於設置進度條的容器樣式,而 progress-bar用於限制進度條的進度(顏色進度)。

progress樣式主要是設置進度條容器的背景色、容器高度、 間距等,progress-bar樣式在設置進度方面,重要的是設置了進度條的 顏色(即樣式的背景色)和過渡效果

除了progress-primary(重點藍)外,其他4種基本顏色。

bs還為進度條提供 了一種條紋樣式,並且不同的顏色可以顯示不同的條紋。只是在容器元素上附加 了一個新的progress-striped樣式,該樣式的實現是利用CSS3的線 性漸變特性linear-gradient來實現的。

bs還提供了一個更炫的動畫 樣式,即:讓條紋動起來。active

堆疊,只要在progress容器內放置多個progress-bar即可實現。

<div class="progress progress-striped">
                <div class="progress-bar active" style="width: 35%">35</div>
                <div class="progress-bar progress-bar-success" style="width: 15%"></div>
</div>

 

媒體對象

媒體對象(Media object)這是一個抽象的樣式,用以構建不同類型的組件。

一組媒體的默認使用方式通常包括如下幾個樣式:media、 media-object、media-body、media-heading 4個樣式,和一個用於控制左右浮動的pull-left(或pull-right)樣式。

如果需要將多個媒體進行列表展示的話,則可以利用在ul上應用media-list樣式、li上應用media樣式來實現。

<ul class="media-list">
  <li class="media">
    <div class="media-left">
      <a href="#">
        <img class="media-object" src="..." alt="...">
      </a>
    </div>
    <div class="media-body">
      <h4 class="media-heading">Media heading</h4>
      ...
    </div>
  </li>
</ul>

 

 

列表

大部分的列表組都是由無標記的列表(ul/li)來實現

列表組有2個基本的樣式:listgroup和list-group-item。

導航箭頭

.list-group-item > .glyphicon-chevron-right {
    float: right; /* 設置小圖標 右浮動 */
    margin-right: 5px; /* 小圖標在span、label、i元素上設置-15像素的右間距 */
}

.list-group-item > .glyphicon + .badge {
    margin-right: 5px; /* 如果兩個圖標放在一起顯示,則保留5像素的右間距 */
}

 

bs又提供了list-groupitem-heading和list-group-item-text這兩個樣式,用於開發人員自 定義列表項里的具體內容,其表示的意思分別是:列表項條目的 頭部(heading)和主要內容(text)。  

 

<div class="list-group">
                <a href="#" class="list-group-item active">
                    <span class="badge">11</span>
                    Cras justo odio
                </a>
                <a href="#" class="list-group-item list-group-item-danger">Dapibus ac facilisis in</a>
                <a href="#" class="list-group-item">Vestibulum at eros</a>
                <a href="#" class="list-group-item">
                    <h4 class="list-group-item-heading">List group item heading</h4>
                    <p class="list-group-item-text">...</p>
                </a>
</div>

 

 

面板

基礎的面板很簡單,就是簡單在div上應用panel,產生一個具 有邊框的文本顯示框

又為其定義 了面板頭(panel-heading)和面板尾(panel-footer)樣式,

除了progress-primary(重點藍)外,其他4種基本顏色。

一般在使用面板的時候,往往可能會在主區域(panel-body)內放很多內容,比如圖片、表格等

帶表格的面板

<div class="panel panel-default">
  <!-- Default panel contents -->
  <div class="panel-heading">Panel heading</div>
  <div class="panel-body">
    <p>...</p>
  </div>

  <!-- Table -->
  <table class="table">
    ...
  </table>
</div>

 

窪地

窪地(Well)樣式的效果和大屏幕展播Jumbotron樣式類似, 不同點是well樣式有了邊框設置,並且默認高度是自適應文本的高度。主要用來實現嵌入在網頁中。

well樣式也提供了不同大小的樣式(主要是panding和圓角大小),分別是:well-lg和well-sm

內容太長會超出邊界!

 

主題

 3.x版本中還新增了一個bootstraptheme.css文件,該文件並沒有提供什么新的功能,僅是針對一些常用的CSS組件進行了增強。

但是theme默認並沒有對所有的CSS組件都進行增強,而是針對9個方面的組件進行了增強:btn按鈕、縮略圖、 下拉菜單、導航條、警告框、進度條、列表組、面板和well

theme文件不是必須要引用的,如果喜歡這種風格才引用它;

如果要定制自己的風格,則可以引用自己的theme名 稱,比如bootstrao-theme-flatui.css。

但是一定要注意,該文件一定要在bootstarp.min.css文件之后才能引用,否則會覆蓋默認的效果。

 

本節地址:http://neverc.cnblogs.com/p/4782635.html


免責聲明!

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



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