转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】栅格系统 1、栅格系统介绍 Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多 12 列。
#栅格系统 ##1、栅格系统介绍
Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多 12 列。
Bootstrap 的栅格系统,由一个行 (.row) 和多个列构成。
栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的网页布局中。具体的数据 (文字、图片等都可以) 放入列当中。
注意:栅格系统,必须放在. container(固定宽度)或. container-fluid(100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。
如果一 “行(row)” 中包含了的 “列(column)” 大于 12,多余的 “列(column)” 所在的元素将被作为一个整体另起一行排列。
##2、栅格系统参数
## 实例:从堆叠到水平排列
使用单一的一组 .col-md-* 栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备上变为水平排列。所有 “列(column)必须放在” .row 内。
<div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> <div>.col-md-1</div> </div> <div> <div>.col-md-8</div> <div>.col-md-4</div> </div> <div> <div>.col-md-4</div> <div>.col-md-4</div> <div>.col-md-4</div> </div> <div> <div>.col-md-6</div> <div>.col-md-6</div> </div>复制代码
## 实例:移动设备和桌面屏幕
是否不希望在小屏幕设备上所有列都堆叠在一起?那就使用针对超小屏幕和中等屏幕设备所定义的类吧,即 .col-xs-* 和 .col-md-*。请看下面的实例,研究一下这些是如何工作的。
<!-- Stack the columns on mobile by making one full-width and the other half-width --> <div> <div>.col-xs-12 .col-md-8</div> <div>.col-xs-6 .col-md-4</div> </div> <!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop --> <div> <div>.col-xs-6 .col-md-4</div> <div>.col-xs-6 .col-md-4</div> <div>.col-xs-6 .col-md-4</div> </div> <!-- Columns are always 50% wide, on mobile and desktop --> <div> <div>.col-xs-6</div> <div>.col-xs-6</div> </div>复制代码
## 实例:手机、平板、桌面
在上面案例的基础上,通过使用针对平板设备的 .col-sm-* 类,我们来创建更加动态和强大的布局吧。
<div> <div>.col-xs-12 .col-sm-6 .col-md-8</div> <div>.col-xs-6 .col-md-4</div> </div> <div> <div>.col-xs-6 .col-sm-4</div> <div>.col-xs-6 .col-sm-4</div> <!-- Optional: clear the XS cols if their content doesn't match in height --> <div></div> <div>.col-xs-6 .col-sm-4</div> </div>复制代码
## 实例:多余的列(column)将另起一行排列
如果在一个 .row 内包含的列(column)大于 12 个,包含多余列(column)的元素将作为一个整体单元被另起一行排列。
<div> <div>.col-xs-9</div> <div>.col-xs-4<br>Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div> <div>.col-xs-6<br>Subsequent columns continue along the new line.</div> </div>复制代码
## 列偏移
使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了 4 个列(column)的宽度。
<div> <div>.col-md-4</div> <div>.col-md-4 .col-md-offset-4</div> </div> <div> <div>.col-md-3 .col-md-offset-3</div> <div>.col-md-3 .col-md-offset-3</div> </div> <div> <div>.col-md-6 .col-md-offset-3</div> </div>复制代码
## 嵌套列 列嵌套:就是在某个栏中,再嵌套一个完整的栅格系统。
为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-* 元素内。被嵌套的行(row)所包含的列(column)的个数不能超过 12(其实,没有要求你必须占满 12 列)。
<div> <div> Level 1: .col-sm-9 <div> <div> Level 2: .col-xs-8 .col-sm-6 </div> <div> Level 2: .col-xs-4 .col-sm-6 </div> </div> </div> </div>复制代码
## 列排序
通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序。 .col-md-push-n 向右移 n 列! .col-md-pull-n 向左移 n 列! 注意!!!这个是绝对定位,也就是其他列不动!这个列会和其他列重叠!
<div> <div>.col-md-9 .col-md-push-3</div> <div>.col-md-3 .col-md-pull-9</div> </div>复制代码
## 看一个完整的实例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.min.css" /> <!--判断IE9 用来支持HTML5 html5shiv.min.js-没有那个元素,就创建那个元素 respond.min.js支持响应式布局的 --> <!--[if lt IE 9]> <script src="js/html5shiv.min.js"></script> <script src="js/respond.min.js"></script> <![endif]--> <title>BootStrap基础入门</title> </head> <body> <div> <div> <div> xxx </div> <div> xxx。 </div> <div> xxx。 </div> </div> <div> <div> xxx </div> <div> xxx。 </div> </div> <div> <div> xxx。 </div> <div> xxx </div> </div> <!-- -- 作者:chenhaoxiang@chaojijuhui.com 时间:2017-01-18 描述:列向右偏移 --> <div> <div> xxx </div> <div> xxx </div> </div> <!-- 作者:chenhaoxiang@chaojijuhui.com 时间:2017-01-18 描述:列嵌套 --> <div> <div> xxx </div> <div> xxx。 <!-- 作者:chenhaoxiang@chaojijuhui.com 时间:2017-01-18 描述:嵌套栅格系统 --> <div> <div></div> <div></div> </div> </div> </div> <!-- 作者:chenhaoxiang@chaojijuhui.com 时间:2017-01-18 描述:列排序 --> <div> <div></div> <div></div> </div> </div> <script type="text/javascript" src="js/jquery.slim.min.js"></script> <script type="text/javascript" src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> </body> </html>复制代码
整个效果都在:
#表单样式 ## 说明
.form-group 表单组样式:将<label>和表单元素包含其中,可以获得更好的排列。 .form-control 表单元素样式:常用于<input>、<textarea>、<select>元素。 .form-inline 内联表单样式 (用于 form 元素):可以使元素一行排列。 .checkbox 复选框样式 .radio 单选框样式 .disabled 可以禁用单选框或复选项的文本。 disabled=“disabled” .form-horizontal 水平排列的表单 (用于 form 元素,类似 row)。 .sr-only:可以用于隐藏元素。 .checkbox-inline 控制多个复选框元素在同一行显示。 .radio-inline 控制多个单选框元素在同一行显示。
## 添加额外的图标 你还可以针对校验状态为输入框添加额外的图标。只需设置相应的 .has-feedback 类并添加正确的图标即可。
反馈图标只处理带 <input> 这个 class 的 input
图标、label 和输入控件组
对于不带有 label 标签的输入框以及右侧带有附加组件的输入框组,需要手动为其图标定位。为了让所有用户都能访问你的网站,我们强烈建议为所有输入框添加 label 标签。如果你不希望将 label 标签展示出来,可以通过添加 sr-only 类来实现。如果的确不能添加 label 标签,请调整图标的 top 值。对于输入框组,请根据你的实际情况调整 right 值。
<div> <label for="inputSuccess2">Input with success</label> <input type="text"> <span></span> </div> <div> <label for="inputWarning2">Input with warning</label> <input type="text"> <span></span> </div> <div> <label for="inputError2">Input with error</label> <input type="text"> <span></span> </div>复制代码
## 实例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.min.css" /> <!--判断IE9 用来支持HTML5 html5shiv.min.js-没有那个元素,就创建那个元素 respond.min.js支持响应式布局的 --> <!--[if lt IE 9]> <script src="js/html5shiv.min.js"></script> <script src="js/respond.min.js"></script> <![endif]--> <title>BootStrap基础入门</title> </head> <body> <div> <form> <!--表单中的栅栏系统用form-horizontal,其他的用row --> <h1>用户注册表单</h1> <div> <!--control-label控制label和input之间的水平距离 --> <label for="username">用户名</label> <div> <input type="text" placeholder="请输入用户名" disabled="disabled"/> </div> </div> <div> <label for="password">密码</label> <div> <input type="password" placeholder="请输入密码" /> </div> </div> <!-- 作者:chenhaoxiang@chaojijuhui.com 时间:2017-01-18 描述:sr-only -隐藏元素 --> <div> <label for="email">邮箱</label> <div> <input type="email" placeholder="请输入邮箱" /> </div> </div> <div> <label>上传图片</label> <div> <input type="file" /> <!-- 作者:chenhaoxiang@chaojijuhui.com 时间:2017-01-18 描述:class="help-block" 帮助信息以块显示- 间距变长了点,颜色变淡了。 --> <p>上传的图片类型只能是:.jpg/.gif/.png</p> </div> </div> <div> <label>兴趣爱好:</label> <div> <label> <input type="checkbox" value="画画" />画画 </label> <label> <input type="checkbox" value="音乐" />音乐 </label> <label> <input type="checkbox" value="体育" />体育 </label> <label> <input type="checkbox" value="唱歌" />唱歌 </label> </div> </div> <div> <label>学历:</label> <div> <label> <input type="radio" name="xueli"/>小学 </label> <label> <input type="radio" name="xueli"/>初中 </label> <label> <input type="radio" name="xueli"/>高中 </label> <label> <input type="radio" name="xueli"/>大专 </label> <label> <input type="radio" name="xueli"/>本科 </label> </div> </div> <div> <label>个人简介:</label> <div> <textarea rows="5" placeholder="请输入你的个人简介信息"></textarea> </div> </div> <div> <button type="button">提交表单</button> </div> </form> </div> <script type="text/javascript" src="js/jquery.slim.min.js"></script> <script type="text/javascript" src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> </body> </html>复制代码
#按钮样式
可作为按钮使用的元素:<a>、<input>、<button> .btn:按钮的全局样式。<input type = “button” class = “btn”> 预定义样式:.btn-default、.btn-primary、.btn-success、.btn-info、.btn-warning、.btn-danger、.btn-link .active按钮激活状态、.disabled按钮禁用状态 按钮尺寸:.btn-lg(大按钮)、.btn-sm(小按钮)、.btn-xs(超小按钮) .btn-block:将按钮拉伸到撑满整个父元素。复制代码
## 预定义样式
<!-- Standard button --> <button type="button">Default</button> <!-- Provides extra visual weight and identifies the primary action in a set of buttons --> <button type="button">Primary</button> <!-- Indicates a successful or positive action --> <button type="button">Success</button> <!-- Contextual button for informational alert messages --> <button type="button">Info</button> <!-- Indicates caution should be taken with this action --> <button type="button">Warning</button> <!-- Indicates a dangerous or potentially negative action --> <button type="button">Danger</button> <!-- Deemphasize a button by making it look like a link while maintaining button behavior --> <button type="button">Link</button>复制代码
## 尺寸
按钮尺寸:.btn-lg(大按钮)、.btn-sm(小按钮)、.btn-xs(超小按钮)
通过给按钮添加 .btn-block 类可以将其拉伸至父元素 100% 的宽度,而且按钮也变为了块级(block)元素。
## 激活状态
当按钮处于激活状态时,其表现为被按压下去(底色更深、边框夜色更深、向内投射阴影)。对于 <button> 元素,是通过 :active 状态实现的。对于 <a> 元素,是通过 .active 类实现的。然而,你还可以将 .active 应用到 <button> 上,并通过编程的方式使其处于激活状态。复制代码
###button 元素
由于 :active 是伪状态,因此无需额外添加,但是在需要让其表现出同样外观的时候可以添加 .active 类。
<button type="button">Primary button</button> <button type="button">Button</button>复制代码
### 链接(<a>)元素 可以为基于 <a> 元素创建的按钮添加 .active 类。 这里的 role=“button” , role 是无障碍设计里的标签(属性 role 的存在,是为了告诉 Accessibility 类应用(比如屏幕朗读程序,为盲人提供的访问网络的便利程序),这是一个按钮。在 html5 元素内,标签本身就是有语义的,因此 role 是不必添加的,至少是不推荐的,但是 bootstrap 的案例内很多都是有类似的属性和声明的,目的是为了兼容老版本的浏览器(用户代理))
<a href="#" role="button">Primary link</a> <a href="#" role="button">Link</a>复制代码
显示效果和上面的图片一样!
## 禁用状态
为 <button> 元素添加 disabled 属性,使其表现出禁用状态。
<button type="button" disabled="disabled">Primary button</button> <button type="button" disabled="disabled">Button</button>复制代码
为基于 <a> 元素创建的按钮添加 .disabled 类。
<a href="#" role="button">Primary link</a> <a href="#" role="button">Link</a>复制代码
#两个完整实例源码链接:
github.com/chenhaoxian…