官方文档:bootstrap提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的minxin用于生成更具语义的布局。
个人理解:bootstrap栅格系统通过提供预定义的类来对html元素进行组装展示,开发者只需要按照bootstrap定义的规则,使用相应的类名来对html dom元素装饰,从而达到开发者相应的布局,开发者不用自己在写css样式,只需要使用预定的css样式组装即可。
bootstrap栅格系统的工作原理:
1 “行(row)“必须包含在.container(固定宽度)或.container-fluid(100%宽度)中,以便为其赋予合适的排列(aligment)和内部(padding).
2 通过"行(row)“在水平方向创建一组"列(column)”。
3 你的内容应到放置于“列(column)”内,并且只有”列(column)“可以作为“行(row)”的直接子元素。
4 类似.row和.col-xs-4这种预定义的类,可以用来创建栅格布局。bootstrap远吗中定义的mixin也可以用来创建语义化的布局。
5 通过为“列(column)”设置padding属性,从而创建列与列之间的间隔。通过为.row元素设置负值margin从而抵消掉为.container元素设置的padding,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding。
6 负值的margin使得元素向外突出。在栅格列中的内容排成一行。
7 栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个.col-xs-4来创建。
8 如果一“行(row)”中包含了的"列(column)“大于12,多余的”列(column)"所在的元素将被作为一个整体另起一行排列。
9 栅格类适用于屏幕宽度大于或等于分界点大小的设备,并且针对小屏幕设备覆盖栅格类。因此在元素上应用任何.col-md-*栅格类适用于屏幕宽度大于或等于分界点大小的设备,并且针对小屏幕设备覆盖栅格类。一次在元素上应用任何.col-lg-*不存在,也影响大屏幕设备。(这个比较绕口,大致意思就是说当在大屏幕上的dom元素应用类.col-lg-*时,同时应用了类col-md-*,那么当对页面大小变更时,当达到了col-md的屏幕标准时,就会使用col-md的样式,而不用col-lg的样式了)
栅格系统通过div实现table一样的表格,流式布局,嵌套栅格,重置栅格,偏移栅格等。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="zh-cn">
<head>
<title>grid.html</title>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-COMPATIBLE" content="IE=edge"/>
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<link href="bootstrap/css/bootstrap.css" rel="stylesheet"/>
<style>
.row{
margin-bottom:20px;
}
.row .row {
margin-top:10px;
margin-bottom:0;
}
[class*="col-"] {
padding-top:15px;
padding-bottom:15px;
background-color:#eee;
background-color:rgba(86,51,124,.15);
border:1px solid #ddd;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-sm-5 col-md-6">
col-sm-5 col-sm-6
<div class="row">
<div class="col-md-10 col-sm-6">
level2: col-xs-8 col-sm-6
</div>
</div>
</div>
<div class="col-sm-5 col-sm-offset-2 col-md-6 col-md-offset-0">col-sm-5 col-sm-6</div>
</div>
</div>
<div class="container">
<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>
</div>
</body>
</html>