响应式布局-BootStrap 方案

507 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

响应式布局-BootStrap 方案

1.Bootstrap 前端开发框架

1.1 Bootstrap 简介

Bootstrap 来自 Twitter(推特),是目前最受欢迎的前端框架。

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 官网

结语

这是我目前所了解的知识面中最好的解答,当然也有可能存在一定的误区。

所以如果对本文存在疑惑,可以在评论区留言,我会及时回复的,欢迎大家指出文中的错误观点。

最后码字不易,觉得有帮助的朋友点赞、收藏、关注走一波。