bootstrap

起步
在IE中运行最新的兼容模式
<meta http-equiv="X-UA-Compatible" content="IE=edge">
初始化移动浏览显示:让视口的宽度=设备屏幕宽度,初始缩放比例为1
<meta name="viewport" content="width=device-width, initial-scale=1">
IE版本低于IE9

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> 
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
<!--[if lt IE 9]> 
<!--IE8浏览器支持html5标签>
    <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<!--IE8浏览器支持媒体查询> 
    <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> 
<![endif]-->

编译css和js文件

  • 在bootstrap目录下,运行npm install
  • 执行grunt dist

以后定制bootstrap时用。

栅格系统

如果给12个column设置.col-md-1。则在电脑上,它们会依次排开;而在手机和平板上,会从上往下堆叠。

==    

某些列可能会出现比别的列高的情况:如下所示

屏幕快照 2016-02-17 下午3.50.20.png
<div class="row">
  <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
  <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>

  <!-- 添加.clearfix和响应式工具类 -->
  <div class="clearfix visible-xs-block"></div>

  <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
  <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>
</div>

效果如下:


屏幕快照 2016-02-17 下午3.50.34.png

列排序

<div class="row"> 
    <div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div> 
    <div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
</div>

列排序跟列偏移不同:列排序时,元素会脱离文档流。

排版

在 HTML 4.01 中不赞成使用 u 标签。
在 HTML 5 中不支持 u 标签。

对齐

  • .text-left
  • .text-right
  • .text-center
  • .text-justify 段落中超出屏幕部分文字自动换行
  • .text-nowrap 段落中超出屏幕部分文字不换行

辅助类
sr-only:除了屏幕阅读器外,其他设备上隐藏元素

三角符号

下三角变为上三角

.test-caret .caret{
  border-top:0;
  border-bottom:4px dashed;
}

导航条内的浮动
.navbar-left .navbar-right

内容块居中
.center-block

显示或隐藏
.show .hidden 只对块级元素起作用
.invisible 不改变display属性

按钮
.btn-lg .btn-sm .btn-xs 四种

表单

单选和多选框: 都有固定的样式。
.checkbox .radio .checkbox-inline .radio-inline

禁用状态

为input button添加disabled属性,为a添加.disabled
fieldset设置disabled,里面的a链接功能不受影响

添加额外的图标

<div class="form-group has-success has-feedback">
    //这四个元素要放在同一级 
    <label class="control-label" for="inputSuccess2">Input with success</label> 
    <input type="text" class="form-control" id="inputSuccess2" aria-describedby="inputSuccess2Status">              
    <span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true"></span> 
    <span id="inputSuccess2Status" class="sr-only">(success)</span>
</div>

表格
六种表格
条纹状.table-striped,
边框.table-bordered
鼠标悬停.table-hover
紧缩.table-condensed
响应.table-responsive

响应式工具
visible | block | inline | inline-block
xs
sm
md
lg
.hidden-xs .hidden-sm .hidden-md .hidden-lg

打印类先不看

使用less

学习less的相关知识

variables.less less变量
使用autoprefixer.js添加前缀

常用的mixin

  • 清除浮动
  • 水平居中
  • 尺寸助手
  • 调整大小的文本域
  • 截断文本

现在还用不到customization,所以不用学会less的源码

使用bootstrap中less的方式Less: Beyond Basics with the Bootstrap Mixins Library

目录结构


屏幕快照 2016-02-19 下午2.10.42.png

style.less文件夹

@import "less/mixins/center-block.less";
    
p {
  .center-block();
}

实例精选

入门级模板

组件

导航条

<nav class="navbar navbar-default">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Project name</a>
    </div>

    <div class="collapse navbar-collapse" id="navbar">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Home <span class="sr-only">(current)</span></a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

以上是最简形式:1、.navbar-header;2、.navbar-collapse内添加导航内容
使用时 需要注意的地方:1、修改#navbar;2、作为body的直接子元素

特殊情况

  • 导航条内所包含元素溢出:减少元素;通过响应工具类隐藏;修改@grid-float-breakpoint,默认值是768px;自己重写相关媒体查询,覆盖原来的代码
  • 依赖 JavaScript ,collapse插件
  • 必须使用<nav>

将导航条内放置品牌标志的地方替换为 img 元素即可展示自己的品牌图标

导航条内包含表单

<form class="navbar-form" role="search"> 
    <div class="form-group"> 
        <input type="text" class="form-control" placeholder="Search"> 
    </div> 
    <button type="submit" class="btn btn-default">Submit</button>
</form>

导航条内包含button,需要添加.navbar-btn
导航条内包含文本:

<p class="navbar-text">Signed in as Mark Otto</p>

非导航链接:.navbar-link

<p class="navbar-text navbar-right">Signed in as 
    <a href="#" class="navbar-link">Mark Otto</a>
</p>

组件排列:.navbar-left .navbar-right

不能向右对齐多个组件

固定在顶部:.navbar-fixed-top

需要为body设置padding-top

固定在底部
静止在顶部:会随着页面向下滚动而消失:.navbar-static-top
反色导航条:.navbar-inverse

巨幕

<div class="jumbotron">
  <h1>Hello, world!</h1>
  <p>...</p>
</div>

与浏览器宽度一致并且没有圆角,请把此组件放在所有 .container
元素的外面,并在组件内部添加一个 .container
元素。

<div class="jumbotron"> 
  <div class="container"> 
    ... 
  </div>
</div>

页头
.page-header

支持 h1 标签内内嵌 small 元素的默认效果`

缩略图

<div class="row">
    <div class="col-xs-6 col-md-3">
      <a href="#" class="thumbnail">
        <img src="images/post.jpg" alt="...">
      </a>
    </div>
  </div>

自定义内容:.caption

<div class="row">
    <div class="col-sm-6 col-md-4">
      <div class="thumbnail">
        <img src="..." alt="...">
        <div class="caption">
          <h3>Thumbnail label</h3>
          <p>...</p>
          <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
        </div>
      </div>
    </div>
  </div>

标签

<span class="label label-default">New</span>

.label-primary等其他可用的变体

徽章

<span class="badge">4</span>

不包含任何内容时,可自动消失

下拉菜单

<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" aria-labelledby="dropdownMenu1">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div>

对齐: .dropdown-menu-left .dropdown-menu-right
在下拉菜单中添加标题: <li class="dropdown-header">Dropdown header</li>
在下拉菜单中添加分割线: <li role="separator" class="divider"></li>
禁用的菜单项:<li class="disabled"><a href="#">Disabled link</a></li>
方法:$('.dropdown-toggle').dropdown('toggle')
事件:跟modal一样

bootstrap这种组件支持data和js两种调用方式:一般情况下可以使用data,如果点击之后又后续操作的话,需要使用js。

导航

<div>

    <!-- Nav tabs -->
    <ul class="nav nav-tabs" role="tablist" id="myTabs">
      <li role="presentation" class="active"><a href="#home" id="home-tab" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
      <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
      <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
      <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
    </ul>

    <!-- Tab panes -->
    <div class="tab-content">
      <div role="tabpanel" class="tab-pane active" id="home">1</div>
      <div role="tabpanel" class="tab-pane" id="profile">...</div>
      <div role="tabpanel" class="tab-pane" id="messages">...</div>
      <div role="tabpanel" class="tab-pane" id="settings">...</div>
    </div>

  </div>

胶囊:.nav-pills
堆叠:.nav-stacked
两端对齐:.nav-justified
方法:$('#myTabs li:eq(2) a').tab('show')
事件:跟modal一样

警告框

<div class="alert alert-warning alert-dismissible" role="alert">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
    <strong>Warning!</strong> Better check yourself, you're not looking too <a href="#" class="alert-link">good</a>.
  </div>

可关闭的警告框
警告框中的链接
.success .info .warning .danger

进度条

<div class="progress">
    <div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
      <span class="">60% Complete</span>
    </div>
  </div>

不加提示数字:span.sr-only
在展示很低的百分比时,如果需要让文本提示能够清晰可见,可以为进度条设置 min-width 属性
min-width: 2em;
min-width: 2em; width: 2%;
不同的情景:给div.progress-bar添加.progress-bar-success .progress-bar-info .progress-bar-warning .progress-bar-danger

列表组

加入徽章:<span class="badge">4</span>

在文字前后都行

全是链接的列表组

<div class="list-group">
    <a href="#" class="list-group-item active">
      Cras justo odio
    </a>
    <a href="#" class="list-group-item">Dapibus ac facilisis in</a>
    <a href="#" class="list-group-item">Morbi leo risus</a>
    <a href="#" class="list-group-item">Porta ac consectetur ac</a>
    <a href="#" class="list-group-item">Vestibulum at eros</a>
  </div>

全是按钮的列表组

<div class="list-group">
    <button type="button" class="list-group-item">Cras justo odio</button>
    <button type="button" class="list-group-item">Dapibus ac facilisis in</button>
    <button type="button" class="list-group-item">Morbi leo risus</button>
    <button type="button" class="list-group-item">Porta ac consectetur ac</button>
    <button type="button" class="list-group-item">Vestibulum at eros</button>
  </div>

被禁用的条目:给.list-group-item添加.disabled
不同情景:给.list-group-item添加.list-group-item-success .list-group-item-info .list-group-item-warning .list-group-item-danger
自定义内容:有专门的header和text

<div class="list-group">
    <a href="#" class="list-group-item active">
      <h4 class="list-group-item-heading">List group item heading</h4>
      <p class="list-group-item-text">...</p>
    </a>
  </div>

面板

<div class="panel panel-success">
    <div class="panel-heading">
      <h3 class="panel-title">Panel title</h3>
    </div>
    <div class="panel-body">
      Panel content
    </div>
    <div class="panel-footer">Panel footer</div>
  </div>

由三部分组成.heading .body .footer

有四种情景
面板内可添加表格、列表组,作为.panel的直接子元素。
well

<div class="well">...</div>

调整大小:.well-lg .well-sm
轮播

    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
    <ol class="carousel-indicators">
      <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
      <li data-target="#carousel-example-generic" data-slide-to="1"></li>
      <li data-target="#carousel-example-generic" data-slide-to="2"></li>
    </ol>
    <div class="carousel-inner" role="listbox">
      <div class="item active">
        <img src="images/post.jpg" alt="First slide">
        <div class="carousel-caption">
          <h3>h1</h3>
          <p>p1</p>
        </div>
      </div>
      <div class="item">
        <img src="images/post.jpg" alt="Second slide">
        <div class="carousel-caption">
          <h3>h2</h3>
          <p>p2</p>
        </div>
      </div>
      <div class="item">
        <img src="images/post.jpg" alt="Third slide">
        <div class="carousel-caption">
          <h3>h3</h3>
          <p>p3</p>
        </div>
      </div>
    </div>
    <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
      <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
      <span class="sr-only">Previous</span>
    </a>
    <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
      <span class="sr-only">Next</span>
    </a>
  </div>

要把fonts添加到css下
需要修改id

方法

.carousel({ interval: 2000})
.carousel('cycle')
.carousel('pause')
.carousel(number)
.carousel('prev')
.carousel('next')

事件

`slide.bs.carousel`当调用 slide 实例方法时立即触发该事件。
`slid.bs.carousel`当轮播完成幻灯片过渡效果时触发该事件。

页脚

html

<footer class="footer">
  <div class="container">
    <p class="text-muted">Place sticky footer content here.</p>
  </div>
</footer>

css

html {
  position: relative;
  min-height: 100%;
}
body {
  margin-bottom: 60px;
}
.container .text-muted {
  margin: 20px 0;
}
.footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 60px;
  background-color: #f5f5f5;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

  • 第5章 菜单、按钮及导航 一、下拉菜单 小伙伴们注意,在Bootstrap框架中的下拉菜单组件是一个独立的组件,根...
    凛0_0阅读 4,914评论 0 66
  • Bootstrap 字体图标(Glyphicons) 字体图标是在 Web 项目中使用的图标字体。虽然,Glyph...
    亮亮叔家的小笔笔阅读 1,160评论 0 1
  • CSS全局样式 概览 移动设备优先 布局容器 1、container类用于固定宽度并支持响应式布局的容器 2、co...
    VEN_64d6阅读 1,351评论 0 1
  • 第3章 探索Bootstrap组件 在这一章,我们将开始使用Bootstrap的一些非常有用的HTML组件。诸如按...
    海上名月阅读 919评论 1 6
  • 我是一个喜欢独处的人,我喜欢安安静静地坐在某一个角落,干着我喜欢的事情。在安谧的环境中沉浸在自己书世界里,任凭指尖...
    花落莫相依阅读 204评论 0 1