持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
响应式布局-BootStrap 方案
1.Bootstrap 前端开发框架
1.1 Bootstrap 简介
Bootstrap 来自 Twitter(推特),是目前最受欢迎的前端框架。
- 中文官网:www.bootess.coml/
- 官网: getbootstrap.com/
- 推荐使用:v3.bootcss.com/
Bootstrap 跨架是基于 HTML、CSS 和 JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。
框架 ∶ 顾名思义就是一套架构,它有一套比较完整的网页功能解决方案,而且控制权在框架本身,有预制样式库、组件和插件。使用者要按照框架所规定的某种规范进行开发。
1.2 Bootstrap 版本说明
2.x.x∶ 停止维护,兼容性好,代码不够简洁,功能不够完善。
3.x.x︰目前使用最多,稳定,但是放弃了 IE6-IE7。对 IE8 支持但是界面效果不好,偏向用于开发响应式布局、移动设备优先的 WEB 项目。
4.x.X︰不再支持 IE8,用 ES6 重写了所有插件;从 Less 迁移到 Sass,改进了网格系统,支持选择弹性盒模型。
5.x.X︰最新版,目前还不是很流行。
2.Bootstrap 布局容器
Bootstrap 需要为页面内容和栅格系统包裹一个.container
容器,Bootstrap 预先定义好了这个类,叫.container
。它提供了.container
与.container-fluid
这两个的类。
2.1 container 类
-
响应式布局的容器 固定宽度
-
大屏(>=1200px)宽度定为 1170px
-
中屏(>=992px)宽度定为 970px
-
小屏(>=768px)宽度定为 750px
-
超小屏(100%)
2.2 container-fluid 类
-
流式布局容器 百分百宽度
-
占据全部视口( viewport )的容器
-
适合于单独做移动端开发
3.响应式栅格系统
3.1 栅格系统简介
栅格系统(grid systems),也叫“网格系统”,它是指将页面布局划分为等宽的列,然后通过列数的定义来模块化页面布局。
Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口( viewport )尺寸的增加,系统会自动分为最多 12 列。
Bootstrap 里面 container 宽度是固定的,但是不同屏幕下,container 的宽度不同,我们再把 container 划分为 12 等份。
3.2 栅格选项参数
栅格系统用于通过一系列的行( row )与列( column )的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。
按照不同屏幕划分为 1~12 等分。
超小屏幕 手机 (<768px) | 小屏幕 平板 (≥768px) | 中等屏幕 桌面显示器 (≥992px) | 大屏幕 大桌面显示器 (≥1200px) | |
---|---|---|---|---|
栅格系统行为 | 总是水平排列 | 开始是堆叠在一起的,当大于这些阈值时将变为水平排列C | ||
.container最大宽度 | None(自动) | 750px | 970px | 1170px |
类前缀 | .col-xs-* | .col-sm-* | .col-md-* | .col-lg-* |
列(column)数 | 12 | |||
最大列(column)宽 | 自动 | ~62px | ~81px | ~97px |
槽(gutter)宽 | 30px(每列左右均有 15px) |
-
行( row)必须放到
container
布局容器里面 -
我们实现列的平均划分需要给列添加类前缀
-
xs
-extra small:超小、sm
-small:小、md
-medium:中等、lg
-large:大 -
列( column )大于 12,多余的“列( column )”所在的元素将被作为一个整体另起一行排列。
-
每一列默认有左右 15px 的 padding。
-
可以同时为一列指定多个设备的类名,以便划分不同份数例如:
class="col-md-4 col-sm-6"
如果container
容器孩子的份数相加:
- < 12,则不占满整个
container
容器则会有空格。 - = 12,则占满整个容器宽度。
- > 12,多出的列会另起一行显示。
用[class^="col"]
选择器选择所有以 col 开头的类名。
3.3 列嵌套
栅格系统内置的栅格系统将内容再次嵌套,简单理解就是一个列内再分成若干份小列。
我们可以通过添加一个新的.row
元素和一系列.col-sm-*
元素到已经存在的.col-sm-*
元素内。
列嵌套最好加一个.row
类名,这样可以取消父元素的 padding 值,而且高度自动和父级元素一样高。
<div class="col-sm-4">
<div class="row">
<div class="col-sm-6">小列</div>
<div class="col-sm-6">小列</div>
</div>
</div>
<div class="col-sm-4">第二列</div>
<div class="col-sm-4">第三列</div>
3.4 列偏移
使用.col-md-offset-*
类可以将列向右侧偏移。
这些类实际是通过使用选择器为当前元素增加了左侧的边距( margin ) 。
<div class="col-md4">1</div>
<div class="col-md4 col-md-offset-4">2</div>
让右侧的盒子往右偏移 4 等份。
3.5 列排序
通过使用.col-md-push-*
(推)和.col-md-pull-*
(拉) 类可以很容易的改变列(column)的顺序。
<div class="container">
<div class="row">
<div class="col-md-4 col-md-push-8">左侧</div>
<div class="col-md-8 col-md-pull-4">右侧</div>
</div>
</div>
3.6 响应式工具
为了更好的进行移动设备页面开发工作,利用媒体查询功能,并使用这些工具类可以方便的针对不同设备展示或隐藏页面内容。
与之相反是显示某个页面内容。
visible-xs
visible-sm
visible-md
visible-lg
Bootstrap 还有很多表单,表格等可以参考Bootstrap 官网。
结语
这是我目前所了解的知识面中最好的解答,当然也有可能存在一定的误区。
所以如果对本文存在疑惑,可以在评论区留言,我会及时回复的,欢迎大家指出文中的错误观点。
最后码字不易,觉得有帮助的朋友点赞、收藏、关注走一波。