首頁 web前端 css教學 《深入理解bootstrap》、: CSS組件

《深入理解bootstrap》、: CSS組件

Oct 15, 2016 pm 03:59 PM

bootstrap三大核心之二。

包括glyphicon圖標,下拉選單(dropdown),按鈕組(button group)....等等。

一. 圖示字體

bootstrap3提供了200多個免費圖示字體。認為它是一個字。

arial-hidden="true"

.sr-only(唯讀)

1. 引入方法:

1

<br/>

登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

《深入理解bootstrap》、: CSS組件

i標籤是已經廢棄了的html斜體標籤。用span也可以。使用時必須基於glyphicon glyphicon-xxx兩個類別的樣式。

2. 實現機制:

(1)雪碧技術:允許無損放大,減少圖片大小,減少網頁的請求次數。

把網頁的背景圖片整合到一張圖片中,利用背景定位顯示出來。

定位的是做上點座標,右邊為x軸負方向,左邊為y軸正方向。

1

background:url(路径) no-repeat 0 0;

登入後複製

(2)@font-face,快取自伺服器,字體特性(如可設定顏色)。 CSS3的線上字體引入寫法是:

 在CSS的最上面:導入第三方字體圖示

1

2

3

@font-face{

    font:字体名称;(自定义名称,避开网络安全字名)

    src:url(字体文件路径), url(字体文件路径), url(字体文件路径),…;}

登入後複製

@font-face至少.woff,.eot兩種格式的字體。一般還要加上SVG字體。

3.應用

在button上應用字體圖示:

1

login

登入後複製

這是在按鈕上套用字體圖示的案例。可以在login上面加一個空格。不然會跟圖示擠在一起。

《深入理解bootstrap》、: CSS組件

還有一個推薦的方式:

1

login

登入後複製

就是把span放到button裡邊。如果不想看到可以為span加上:sr-only(裝置可讀,使用者看不到)。

再有如:

1

logout

登入後複製

《深入理解bootstrap》、: CSS組件

再看copyright圖示-

1

<br/>

登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

注意字體圖示的原則-讓所有人能用-加上title屬性<br/>

需要選單

down. jq支援)

1. 基本用法

一個下拉式選單的基本實作是,一個按鈕,一個隱藏的ul-li,一個回應才做圖示。透過jquery的toggle操作顯示隱藏。

在bootstrap中,結構也是一樣,不同的是,只需要應用三個基本語句就可以實現。

class="dropdown"——包在最外層的p上,這是一個下拉式選單。

<br/>

ul class="dropdown-menu"——隱藏ul。

<br/>

光有ul隱藏還不夠,button按鈕綁定的行為應該是:data-toggle="dropdown"

《深入理解bootstrap》、: CSS組件

1

2

纵贯线

                                   周华健                   李宗盛                   罗大佑                   张震岳

登入後複製

效果馬上就有了:

《深入理解bootstrap》、: CSS組件

改為dropup,選單就變成「上拉選單」了

對齊-用在ul上

預設是左對齊。

dropdown-menu-left|right

(1)標題

1

<br/>

登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

例如給每個成員的li加上dropdown-header:同時還加上各自的作品

header《深入理解bootstrap》、: CSS組件

注意,dropdown-加a標記

(2)分割線

光是這樣看很累,可以加上分割線來區分層級。

1

<br/>

登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

《深入理解bootstrap》、: CSS組件

(3)禁用

1

<br/>

登入後複製
登入後複製
登入後複製
登入後複製
登入後複製

不讓用,比如我要禁點“一起哈啤”,就給他加上cla​​ss="disabled"

結果是禁止點擊狀態:

《深入理解bootstrap》、: CSS組件

通常应用不同的角色办理。

【例4.1】

现在有一个下拉菜单,一个文本输入框,样式如下:

1

2

3

纵贯线

                 周华健            怕黑            雨人                        李宗盛            凡人歌            寂寞难耐                        罗大佑            恋曲1980            爱人同志                        张震岳            一起哈啤            公路            

                                                              登录

登入後複製

《深入理解bootstrap》、: CSS組件

要求:输入“我是哈啤会员”,点击btn按钮登录后,菜单“一起哈啤”显示可用,否则为不可选状态。

通过jquery实现:

1

2

3

4

5

6

7

$(function(){

    $(&#39;#login&#39;).click(function(){

        if($(&#39;#inputName&#39;).val()==&#39;我是哈啤会员&#39;){

            $("li:contains(&#39;一起哈啤&#39;)").removeClass(&#39;disabled&#39;);

        }

    })

})

登入後複製

三. 多级嵌套——3.x版已经删除。(不看)

四. 按钮组——p class="btn-group"

1.基本用法

对一系列按钮的容器套用btn——group

1

Login    Register    Reset

登入後複製

《深入理解bootstrap》、: CSS組件

很有一种手机的感觉。

2.还可以批量修改尺寸:如果加上btn-group-lg/sm/xs等尺寸参数:比如这是使用btn-group-xs的效果。没有md(shi)

《深入理解bootstrap》、: CSS組件

注意按钮组的大小设置优先级大于按钮(因为在源码中后定义。)

3.工具栏:

在以上代码的基础上,赋值一组,然后将2组包裹在一个p中,给此p加上class="btn-toolbar"

1

Login        Register        Reset                Login        Register        Reset

登入後複製

《深入理解bootstrap》、: CSS組件

说白了就是打横来。

【应用】按钮组可以和下拉菜单配合使用。那看起来就像个导航了。

1

2

Login    Register    Reset                        纵贯线

                                   周华健           李宗盛           罗大佑           张震岳

登入後複製
登入後複製

《深入理解bootstrap》、: CSS組件

4.垂直分组btn-group-vertical

对button外包的p使用。

1

2

Login    Register    Reset                        纵贯线

                                   周华健           李宗盛           罗大佑           张震岳

登入後複製
登入後複製

《深入理解bootstrap》、: CSS組件

但是使用这种方式做的垂直导航不多。

5. 自适应的分组按钮:btn-group-justify

让按钮的宽度自适应——注意此功能仅限于a标记类型的btn!

1

Login            Register            Reset

登入後複製

《深入理解bootstrap》、: CSS組件

四. 按钮式的下拉菜单(胶囊式的按钮)

依赖js组件,而且一般用于实现是分裂式的。

<br/>

《深入理解bootstrap》、: CSS組件

1.基本实现思路

一个按钮组,实际包括两个按钮。一个是内容,一个显示三角符号(class="caret")。就像下面一样:

1

Search

登入後複製

《深入理解bootstrap》、: CSS組件

接下来实现菜单点击按钮,出现一个ul-li序列。对绿色按钮做——data-toogle="dropdown"

《深入理解bootstrap》、: CSS組件

1

Search                            link1        link2        link3

登入後複製

按钮组控件本身也支持下拉菜单的触发,所以不需要class=dropdown了

同理,在button-group上加上dropup代表向上弹出。

五. 输入框组——input-group系列

用于单行文本输入框和其它小的组件(比如说span)进行排列。只支持文本输入框。

1. input-group-addon——直接添加到span标签

1

Email

登入後複製

《深入理解bootstrap》、: CSS組件

你也可以为span里面加单选框(radio)和复选框(checkbox),但是样式相当难看。

看上去好神奇的样子,那能为span加诸如的图标字体吗?——抱然而真的不能用。

2. input-group-btn——直接添加到span标签,但是里面包了一个按钮

为什么要额外设置多一个input-group-addon?

.btn的样式过于复杂了。为了避免冲突,需要额外指定一个类。

1

Email        GO

登入後複製

《深入理解bootstrap》、: CSS組件

注意:

(1) input-group-btn不是直接用,button按钮上面,同时,button按钮至少要加个btn的class,三者是配合使用的。

(2)input输入框组支持定义大小——和btn-group一样,支持input-group-lg/sm/xs+默认 四个大小样式。

【例4.2】

在上面代码的基础上,当输入正确邮箱时(if(this.value!="" && !( this.value!="" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value) ))),按钮变为可用(移除.disabled),点击可以为此地址法邮件(通常用于提交验证邮件)。用脚本实现之。

唯一需要注意的是,这里的button按钮应使用location.href作为跳转。

1

2

3

4

5

6

7

8

9

10

11

12

13

$(function(){

    $(&#39;.form-control:input&#39;).keyup(function(){

        if(this.value!="" && !( this.value!="" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value) )){

            $(&#39;button&#39;).removeClass().addClass(&#39;btn btn-success&#39;);

            var address=this.value;

            $(&#39;button&#39;).click(function(){

                location.href=&#39;mailto:&#39;+address;

            })

        }else{

            $(&#39;button&#39;).html(&#39;GO&#39;).removeClass().addClass(&#39;btn btn-warning&#39;).addClass(&#39;disabled&#39;);

        }

    })

})

登入後複製

《深入理解bootstrap》、: CSS組件

3.与其它组件结合

(1)下拉菜单结合addon

把上面的代码修改以下,直接给按钮加上一个data-toggle="dropdown",然后把容器由span改成p。

1

2

GO

            1        2        3

登入後複製

《深入理解bootstrap》、: CSS組件

(2)分裂式按钮

在input-group-btn下,组合的按钮也是可以分裂式的。无需再给父级容器加btn-group。同时应该注意到,不同点在于按钮的圆角被去掉了。

《深入理解bootstrap》、: CSS組件

六. 导航(基本)

导航是所有组件的重点。对于导航有套用的预置类.nav,但是它并不生产直观样式,只是各种导航实现的前提条件。导航的结构和正常差不多,本质是通过ul-li体系实现。组件的动效依赖jquery。

选项卡:

胶囊式导航:

堆叠式导航(垂直标签页):

自适应导航(两端对齐):

1.选项卡—— .nav-tabs

实现方式:

1

HomePofileMessage

登入後複製

样式如下,配合.active来使用message当前处于激活状态。

《深入理解bootstrap》、: CSS組件

2.胶囊式导航——nav-pills

很生动形象的词。上面代码中,把ul的class改为nav-pills就可以实现了。

《深入理解bootstrap》、: CSS組件

3.垂直标签——nav-stacked

同样也是应用在ul上。但注意,.active样式在此不生效,图中只是悬停的效果。

《深入理解bootstrap》、: CSS組件

4.两端对齐

整个nav占据了屏幕的一行,同时自动分配宽度。当屏幕较小时,自动垂直排列。同样,途中的阴影只是鼠标悬停的效果,

《深入理解bootstrap》、: CSS組件

5. 初步小结:

(1)以上四类可以混搭使用。要想使用.active类样式,可以在tab/pills的框架下使用。

比如class="nav nav-pills nav-justified"

【例4.3】拼凑一个二级导航:

任务描述:在一个胶囊内拼凑一个耳机导航,实现下拉菜单功能:

根据框架可以写出下列代码

1

2

这是胶囊式导航 class="nav nav-pills"            Home        Pofile                                    Message

                                                    link1                link2                link3

登入後複製
登入後複製

但还是发现,第7行的data-toggle已经有了一个"tab",再添加“dropdown”导致双方都不生效。尝试使用分段式按钮,但是发现按钮的表现和胶囊按钮的区别还是有的。所以二者只能取一。至于active类,以后可以用js实现。

所以最终代码是:

1

2

这是胶囊式导航 class="nav nav-pills"            Home        Pofile                                    Message

                                                    link1                link2                link3

登入後複製
登入後複製

进一步思考:在此基础上做出三级菜单。三级菜单需要.dropdown-submenu实现,但是bootstrap3已经删除了相关类。这时需要在css中引入旧版中.dropdown-submenu的样式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

.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;

    border-radius: 0 6px 6px 6px;

}

.dropdown-submenu:hover > .dropdown-menu {

    display: block;

}

.dropdown-submenu > a:after {

    display: block;

    content: " ";

    float: right;

    width: 0;

    height: 0;

    border-color: transparent;

    border-style: solid;

    border-width: 5px 0 5px 5px;

    border-left-color: #ccc;

    margin-top: 5px;

    margin-right: -10px;

}

.dropdown-submenu:hover > a:after {

    border-left-color: #fff;

}

.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;

}

登入後複製

结构实现:(关键语句在第17行)

1

2

3

4

这是胶囊式导航 class="nav nav-pills"            Home        Pofile                                    Message

                                                    link1                link2                

              

                                link4                                            link4-1                                                                            link4-2                                                            link4-2-1

登入後複製

效果:

《深入理解bootstrap》、: CSS組件

(2)借助js插件实现真正的,但只是初步的导航交互——

在ul-li-a体系下,给a标签加上属性:data-toggle="tab"——注意堆叠导航和自适应导航无效(还是本来的效果)

《深入理解bootstrap》、: CSS組件

(3)禁止点击——还是disabled类

注意,禁止点击disabled类只是一个效果,而不能阻止点击事件的触发。需要在js中重新定义。

七. 导航条(navbar)

导航条的特性在于:比导航多了一个“条”。相对于导航多了一块背景——

《深入理解bootstrap》、: CSS組件

以下是根据基本结构做出来的导航条效果

1

这是基本导航条  .navbar-fixed-top可以固定在上方                    Brand                    disabled            normal            Message

登入後複製

《深入理解bootstrap》、: CSS組件

如果我们给nav标签加上.navbar-fixed-top,可以固定到最上面。但是这样做本质是定位,会覆盖掉原本处于顶端的内容。

《深入理解bootstrap》、: CSS組件

官方建议:原本顶部内容,或者body的padding-top设为70px。如果是顶部内容是header,偏移30px就够了。

nav-header不一定是必要的

nav-brand用于放置网站品牌,换行不会被消失

导航条的颜色由两个类决定:(1).navbar-dfault;(2).navbar-inverse:控制反色。比如加了.navbar-inverse后:

《深入理解bootstrap》、: CSS組件

下拉二级菜单的实现:只要对li应用dropdown体系就可以实现:

1

2

Music

    link1        link2        link3

登入後複製

《深入理解bootstrap》、: CSS組件

1. 导航条表单

最常用的就是网易登陆框,附在导航条上面。

——

(1)逻辑上表单也是ul-li的一部分,所以表单放在li里面。但是注入输入框之类的控件在小屏幕中会自动填充100%的宽度,所以要给li加上container-fluid类(注意container类不行)

(2)接下来是按钮,还记得input-group-btn否?按钮应该是和输入框挤在一块的。

1

<br/>

登入後複製

《深入理解bootstrap》、: CSS組件

2.基本导航元素

(1)导航条按钮

——

多了一个样式叫navbar-btn

按钮也是ul-li体系的一部分,所以也要放到一个li中,比如说,做一个ul class="navbar-right",下面放一个li的建议按钮——

1

Suggest

登入後複製

《深入理解bootstrap》、: CSS組件

(2)导航条文本

——

主要是宽高符合导航条。比如说在之前的表单前面在新建一个li,输入

就表现出和其它菜单一样的样式。

《深入理解bootstrap》、: CSS組件

还是不理想,如果search是和导航是一个紧贴着,应该用addon加上去!

《深入理解bootstrap》、: CSS組件

相对好点)

(3)非导航连接

——

表现和导航条文本差不多。

3.位置——做的是固定定位

排列

.navbar-left/right

固定

.navbar-fixed-top/bottom

(注意body的padding)

4.自适应导航条

实现一个在小屏幕手机常见的菜单按钮是在一个button中放三个(“三道杠”)。然后设置较小的时候出现。《深入理解bootstrap》、: CSS組件——button class="navbar-toggle"

1

<br/>

登入後複製

进一步编写可收缩的菜单html,需要对ul外包一个p,并对其应用.collapase .navbar-collapase

1

2

Home

    Music

登入後複製

这样home和music都会在屏幕缩小时收缩。然而点击三道杠,不弹出菜单,点击时需要插件,而插件由打扰开头,所以button按钮需要有data-toggle="collapse"和data-target="展开的菜单"。展开的菜单是个选择器,给ul父级命名id="#pNav",可以直接应用

data-target="#pNav"。

《深入理解bootstrap》、: CSS組件《深入理解bootstrap》、: CSS組件

《深入理解bootstrap》、: CSS組件

全部代码如下:

1

2

3

Brand                                                                                                                                   

                                                Home

                                                    Music

登入後複製

如果希望菜单偏移到右边,可以对ul使用navbar-right

八. 面包屑导航

breadcrumb——很形象的名字,一路撒面包,只能从面包原路返回。只是一个层级的路径关系,不能说是一个标准的导航

1

level1    level2    level3    >level4

登入後複製

《深入理解bootstrap》、: CSS組件

九. 分页导航

当商品较多时,索引容纳不下,需要用分类导航。

  • /

    • <br/>

    • <br/>

    1

    last        1        2        3        next

    登入後複製

    《深入理解bootstrap》、: CSS組件

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Java教學
    1664
    14
    CakePHP 教程
    1423
    52
    Laravel 教程
    1317
    25
    PHP教程
    1268
    29
    C# 教程
    1246
    24
    如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

    您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

    HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

    您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

    使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

    在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

    當您看上去時,CSS梯度變得更好 當您看上去時,CSS梯度變得更好 Apr 11, 2025 am 09:16 AM

    我關注的一件事是Lea Verou&#039; s conic-Gradient()Polyfill的功能列表是最後一項:

    如何在WordPress主題中構建VUE組件 如何在WordPress主題中構建VUE組件 Apr 11, 2025 am 11:03 AM

    內聯式模板指令使我們能夠將豐富的VUE組件構建為對現有WordPress標記的逐步增強。

    靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

    讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

    php是A-OK用於模板 php是A-OK用於模板 Apr 11, 2025 am 11:04 AM

    PHP模板通常會因促進Subpar代碼而變得不良說唱,但這並不是這樣的情況。讓我們看一下PHP項目如何執行基本的

    三種代碼 三種代碼 Apr 11, 2025 pm 12:02 PM

    每次啟動一個新項目時,我都會將我正在查看的代碼分為三種類型,或者如果您願意的話。我認為這些類型可以應用於

    See all articles