bootstrap栅格系统
bootstrap栅格系统是bootstrap的核心以及精髓所在
一、容器
- 1.流体容器
- 流体容器宽度为100%(即占当前视口的宽度)
- 2.固定容器
阈值 | width |
---|---|
大于等于1200(lg 大屏pc) | 1170(1140+槽宽) |
大于等于992(md 中屏pc)小于1200 | 970(940+槽宽) |
大于等于768(sm 平板)小于992 | 750(720+槽宽) |
小于768(xs 移动手机) | auto |
二、栅格系统的应用
1. 栅格参数
类别 | 超小屏幕 手机 (<768px) | 小屏幕 平板 (≥768px) | 中等屏幕 桌面显示器 (≥992px) | 大屏幕 大桌面显示器 (≥1200px) |
---|---|---|---|---|
栅格系统行 | 总是水平排列 | 开始是堆叠在一起的,当大于这些阈值时将变为水平排列 | 开始是堆叠在一起的,当大于这些阈值时将变为水平排列 | 开始是堆叠在一起的,当大于这些阈值时将变为水平排列 |
.container 最大宽度 | None | 750px | 970px | 1170px |
类前缀 | .col-xs- | .col-sm- | .col-md- | .col-lg- |
列数(column) | 12 | 12 | 12 | 12 |
最大列宽 | 自动 | ~62px | ~81px | ~97px |
槽(gutter)宽 | 30px (每列左右均有 15px) | 30px | 30px | 30px |
可嵌套 | 是 | 是 | 是 | 是 |
偏移(Offsets) | 是 | 是 | 是 | 是 |
列排序 | 是 | 是 | 是 | 是 |
2. 栅格组合
利用栅格系统在不同设备状态下页面布局有不同的提现
例如
|
|
3. 列偏移和列排序
列排序
通过使用 .col-xx-push-y和 .col-xx-pull-y类就可以很容易的改变列(column)的顺序。
实际上在控制元素left值
例如
|
|
列偏移
.col-xx-offset-y 类可以将列向右侧偏移
实际上在控制元素margin-left的值
例如
|
|
4. 响应式工具的使用
利用.visible-xx 和 .hidden-xx 控制元素在该xx设备上的显示与隐藏
|
|
5. 栅格盒模型设计的精妙之处
容器两边具有15px的padding
目标 | 规则 |
---|---|
列 | 两边具有15px的padding |
行 | 两边具有-15px的margin |
- 为了维护槽宽的规则,
- 列两边必须得要15px的padding
- 为了能使列嵌套行
- 行两边必须要有-15px的margin
- 为了让容器可以包裹住行
- 容器两边必须要有15px的padding
三、栅格系统源码解析
1.基本实现的流程
- 固定和流体容器的公共样式在less混合中的代码
注:@grid-gutter-widt:槽宽
|
|
- 固定容器和流体容器的样式在less实际中的代码
|
|
- 行元素默认样式在less混合中的代码
|
|
- 行元素样式在less中的代码
|
|
- 列元素样式在less中实际的代码
|
|
2.核心代码
- 列元素样式的初步实现
|
|
- 列元素具体样式的实现
|
|
- 写入所有列的默认值
|
|
- 设置宽度列排列和列偏移的入口代码
|
|
- 规定个个列的宽度
|
|
- 列排列控制
|
|
- 列偏移控制
|
|