Bootstrap布局
Bootstrap官网
Sweetalert官网
1 概览
1.1 移动设备优先
为了确保适当的绘制和触屏缩放,需要在 <head>
之中添加 viewport 元数据标签。
1 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
在移动设备浏览器上,通过为视口(viewport)设置 meta 属性为 user-scalable=no
可以禁用其缩放(zooming)功能。这样禁用缩放功能后,用户只能滚动屏幕,就能让你的网站看上去更像原生应用的感觉。注意,这种方式我们并不推荐所有网站使用,还是要看你自己的情况而定!
1 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
媒体查询
1 | /* >= 768 < 992 小屏幕 平板 */ |
1.2 Normalize.css
BootStrap内置了Normalize.css
1.3 布局容器
Bootstrap 需要为页面内容和栅格系统包裹一个 .container
容器。我们提供了两个作此用处的类。注意,由于 padding
等属性的原因,这两种 容器类不能互相嵌套。
.container
类用于固定宽度并支持响应式布局的容器。
1 | <div class="container"> |
.container-fluid
类用于 100% 宽度,占据全部视口(viewport)的容器。
1 | <div class="container-fluid"> |
2 栅格系统
Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列
1 | <div class="row"> |
2.1 栅格系统简介
栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。下面就介绍一下 Bootstrap 栅格系统的工作原理:
- “行(row)”必须包含在
.container
(固定宽度)或.container-fluid
(100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。 - 通过“行(row)”在水平方向创建一组“列(column)”。
- 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。
- 类似
.row
和.col-xs-4
这种预定义的类,可以用来快速创建栅格布局。Bootstrap 源码中定义的 mixin 也可以用来创建语义化的布局。 - 通过为“列(column)”设置
padding
属性,从而创建列与列之间的间隔(gutter)。通过为.row
元素设置负值margin
从而抵消掉为.container
元素设置的padding
,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding
。 - 负值的 margin就是下面的示例为什么是向外突出的原因。在栅格列中的内容排成一行。
- 栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个
.col-xs-4
来创建。 - 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。
- 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何
.col-md-*
栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何.col-lg-*
不存在, 也影响大屏幕设备。
2.2 栅格参数
超小屏幕 手机 (<768px) | 小屏幕 平板 (≥768px) | 中等屏幕 桌面显示器 (≥992px) | 大屏幕 大桌面显示器 (≥1200px) | |
---|---|---|---|---|
.container 最大宽度 |
None (自动) | 750px | 970px | 1170px |
类前缀 | .col-xs- |
.col-sm- |
.col-md- |
.col-lg- |
最大列(column)宽 | 自动 | ~62px | ~81px | ~97px |
2.3 栅格系统使用
使用单一的一组 .col-md-*
栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备上变为水平排列。所有“列(column)必须放在 ” .row
内。
1 | <div class="row"> |
2.4 不同屏幕设置不同宽度
1 | <div class="row"> |
2.5 列偏移
使用 .col-md-offset-*
类可以将列向右侧偏移。这些类实际是通过使用 *
选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4
类将 .col-md-4
元素向右侧偏移了4个列(column)的宽度。
1 | <div class="row"> |
2.6 列位置移动
通过使用 .col-md-push-*
和 .col-md-pull-*
类就可以很容易的改变列(column)的顺序。
1 | <div class="row"> |
3 排版
3.1 标题
HTML 中的所有标题标签,<h1>
到 <h6>
均可使用。另外,还提供了 .h1
到 .h6
类,为的是给内联(inline)属性的文本赋予标题的样式。
1 | <h1>h1. Bootstrap heading</h1> |
在标题内还可以包含 <small>
标签或赋予 .small
类的元素,可以用来标记副标题。
1 | <h1>h1. Bootstrap heading <small>Secondary text</small></h1> |
3.2 突出显示
通过添加 .lead
类可以让段落突出显示。
1 | <p class="lead">...</p> |
3.3 对齐
1 | <p class="text-left">Left aligned text.</p> |
3.4 改变大小写
1 | <p class="text-lowercase">Lowercased text.</p> |
3.5 引用
1 | <blockquote> |
1 | <blockquote> |
1 | <blockquote class="blockquote-reverse"> |
3.6 列表
无样式列表
1 | <ul class="list-unstyled"> |
内联列表
1 | <ul class="list-inline"> |
水平排列的内联列表
1 | <dl class="dl-horizontal"> |
4 代码
4.1 内联代码
通过 <code>
标签包裹内联样式的代码片段。
1 | For example, <code><section></code> should be wrapped as inline. |
4.2 用户输入
通过 <kbd>
标签标记用户通过键盘输入的内容。
1 | To switch directories, type <kbd>cd</kbd> followed by the name of the directory.<br> |
4.3 代码块
多行代码可以使用 <pre>
标签。为了正确的展示代码,注意将尖括号做转义处理。
1 | <pre><p>Sample text here...</p></pre> |
还可以使用 .pre-scrollable
类,其作用是设置 max-height 为 350px ,并在垂直方向展示滚动条。
4.3 变量
通过 <var>
标签标记变量。
1 | <var>y</var> = <var>m</var><var>x</var> + <var>b</var> |
4.4 程序输出
通过 <samp>
标签来标记程序输出的内容。
1 | <samp>This text is meant to be treated as sample output from a computer program.</samp> |
5 表格
5.1 基本
为任意 <table>
标签添加 .table
类可以为其赋予基本的样式
1 | <table class="table"> |
5.2 条纹状表格
1 | <table class="table table-striped"> |
5.3 带边框的表格
1 | <table class="table table-bordered"> |
5.4 鼠标悬停
1 | <table class="table table-hover"> |
5.5 紧缩表格
1 | <table class="table table-condensed"> |
5.6 状态类
通过这些状态类可以为行或单元格设置颜色。
Class | 描述 |
---|---|
.active |
鼠标悬停在行或单元格上时所设置的颜色 |
.success |
标识成功或积极的动作 |
.info |
标识普通的提示信息或动作 |
.warning |
标识警告或需要用户注意 |
.danger |
标识危险或潜在的带来负面影响的动作 |
5.7 响应式表格
将任何 .table
元素包裹在 .table-responsive
元素内,即可创建响应式表格,其会在小屏幕设备上(小于768px)水平滚动。当屏幕大于 768px 宽度时,水平滚动条消失。
6 表单
6.1 基本实例
单独的表单控件会被自动赋予一些全局样式。所有设置了 .form-control
类的 <input>
、<textarea>
和 <select>
元素都将被默认设置宽度属性为 width: 100%;
。 将 label
元素和前面提到的控件包裹在 .form-group
中可以获得最好的排列。
1 | <form> |
6.2 内联表单
为 <form>
元素添加 .form-inline
类可使其内容左对齐并且表现为 inline-block
级别的控件。只适用于视口(viewport)至少在 768px 宽度时(视口宽度再小的话就会使表单折叠)
6.3 水平排列的表单
通过为表单添加 .form-horizontal
类,并联合使用 Bootstrap 预置的栅格类,可以将 label
标签和控件组水平并排布局。这样做将改变 .form-group
的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加 .row
了
1 | <form class="form-horizontal"> |
6.4 表单控件
输入框
包括大部分表单控件、文本输入域控件,还支持所有 HTML5 类型的输入控件: text
、password
、datetime
、datetime-local
、date
、month
、time
、week
、number
、email
、url
、search
、tel
和 color
。
只有正确设置了 type
属性的输入控件才能被赋予正确的样式。
文本域
支持多行文本的表单控件。可根据需要改变 rows
属性。
多选和单选框
默认样式
1 | <div class="checkbox"> |
内联单选和多选框
1 | <label class="checkbox-inline"> |
不带文本的Checkbox 和 radio
1 | <label> |
下拉列表
1 | <select class="form-control"> |
静态内容
如果需要在表单中将一行纯文本和 label
元素放置于同一行,为 <p>
元素添加 .form-control-static
类即可
1 | <form class="form-horizontal"> |
帮助文字
1 | <label class="sr-only" for="inputHelpBlock">Input with help text</label> |
校验状态
Bootstrap 对表单控件的校验状态,如 error、warning 和 success 状态,都定义了样式。使用时,添加 .has-warning
、.has-error
或 .has-success
类到这些控件的父元素即可。任何包含在此元素之内的 .control-label
、.form-control
和 .help-block
元素都将接受这些校验状态的样式。
1 | <div class="form-group has-success"> |
添加额外的图标
你还可以针对校验状态为输入框添加额外的图标。只需设置相应的 .has-feedback
类并添加正确的图标即可
1 | <div class="form-group has-success has-feedback"> |
控件尺寸
通过 .input-lg
类似的类可以为控件设置高度,通过 .col-lg-*
类似的类可以为控件设置宽度。
高度尺寸
创建大一些或小一些的表单控件以匹配按钮尺寸
1 | <input class="form-control input-lg" type="text" placeholder=".input-lg"> |
水平排列的表单组的尺寸
通过添加 .form-group-lg
或 .form-group-sm
类,为 .form-horizontal
包裹的 label
元素和表单控件快速设置尺寸。
1 | <form class="form-horizontal"> |
7 按钮
7.1 可作为按钮使用的标签或元素
为 <a>
、<button>
或 <input>
元素添加按钮类(button class)即可使用 Bootstrap 提供的样式
1 | <a class="btn btn-default" href="#" role="button">Link</a> |
7.2 预定义样式
1 | <!-- Standard button --> |
7.3 尺寸
需要让按钮具有不同尺寸吗?使用 .btn-lg
、.btn-sm
或 .btn-xs
就可以获得不同尺寸的按钮。
通过给按钮添加 .btn-block
类可以将其拉伸至父元素100%的宽度,而且按钮也变为了块级(block)元素。
7.4 激活状态
添加 .active
类
7.5 禁用状态
为 <button>
元素添加 disabled
属性,使其表现出禁用状态。
为基于 <a>
元素创建的按钮添加 .disabled
类。
8 图片
8.1 响应式图片
在 Bootstrap 版本 3 中,通过为图片添加 .img-responsive
类可以让图片支持响应式布局。其实质是为图片设置了 max-width: 100%;
、 height: auto;
和 display: block;
属性,从而让图片在其父元素中更好的缩放。
如果需要让使用了 .img-responsive
类的图片水平居中,请使用 .center-block
类,不要用 .text-center
1 | <img src="..." class="img-responsive" alt="Responsive image"> |
8.2 图片形状
1 | <img src="..." alt="..." class="img-rounded"> |
9 辅助类
9.1 文本颜色
1 | <p class="text-muted">...</p> |
9.2 背景色
1 | <p class="bg-primary">...</p> |
9.3 三角符号
1 | <span class="caret"></span> |
9.4 浮动
1 | <div class="pull-left">...</div> |
9.5 让内容块居中
1 | <div class="center-block">...</div> |
9.6 清除浮动
通过为父元素添加 .clearfix
类可以很容易地清除浮动(float
)
1 | <!-- Usage as a class --> |
9.7 显示或隐藏内容
1 | <div class="show">...</div> |
9.10 图片替换
使用 .text-hide
类或对应的 mixin 可以用来将元素的文本内容替换为一张背景图。
1 | <h1 class="text-hide">Custom heading</h1> |
10 响应式工具
10.1 不同视口下隐藏显示
1 | .visible-xs-* |
1 | .visible-*-block |
10.2 打印类
1 | .visible-print-block |