学习Bootstrap3之栅格排版系统

image.png

bootstrap 的栅格系统是布局的一套基本工具。

相当于文本编辑来说,栅格系统是对版面的处理,尤其是水平方向的布局
版面按平面设计来说,包括页边距、天地、页脚、页眉,版块也一样。
按表现来说,排版分为层叠position(z序图层重叠)、堆叠stacking、内联inline、栅格grid, 还有浮动float、现代的弹性盒子flexbox,这些结构都维护着内容块的间距,大小,方向。
学习bootstrap的目地不仅仅在于使用bootstrap本身,而是熟悉掌握类似的css框架的组成,对于其它的框架,其构成结构与原理大致是差不多的,了解了一个,其它的就更容易上手,保证我们在不同的css框架间游刃有余。
对于移动端来说,栅格系统的重要性被降低了,因为它们大多是堆叠式排版,而且有了flexbox,可以更加灵活的进行全方位的对齐分割版面。

  • containercontainer-fluid 是屏幕居中与两侧留白的工具类。

  • row 是对齐父内容与约束子列浮动的工具类,它还是架构嵌套的多列结构的工具。

  • col-*-* 是创建组合单元列的工具类,起到不同设备间有不同的列数或者从堆叠转换到水平排版的控制类。

如果只有单列,则无须使用 .row>.col-*-* 结构, 直接一个block元素即可。

  • col-*-offset-* 让当前列向右偏移n个单位,用来对齐上一行的某列,例如表单中有无前置标签的排版。

  • col-*-pull-* 与 col-*-push-* 可以使用列左右移动,因为col本身就是相对定位的,脱离了文档流的限制,用来实现SEO语义与视觉上排版的冲突解决,也可以实现堆叠与水平排版两种场景不同排序的功能。

默认边缘col会对齐父内容,col之间间隔为15px*2, 有时候需要去掉间隔,或者只想要15px间隔,这个时候就可以自定义两个类来实现:

/*
remove gutter
*/

.no-gutter .row {
    margin-left: 0;
    margin-right: 0;
}
.no-gutter [class*='col-'] {
    padding-right: 0;
    padding-left: 0;
}

/*
 gutter
*/

.half-gutter {
    margin-right: 0 !important;
}
.half-gutter>[class*='col-'] {
   padding-right:0;
}

不同的设备如果需要隐藏或者显示某个元素,可以使用 visible-*-*hidden-* 两套响应式工具类。
常用于小屏把导航收起为一个菜单按钮的场景。

  • 在不定数内容列的场景,如果列高不一致,因为float的特性,会出现穿插卡位的bug, 这个时候就要对周期性的点进行清浮操作。

    1. 可以使用 :nth-children(4n+5){clear:left} 这样的附加css进行控制,不过它不支持IE8
    2. 也可以添加插入额外的一个div来实现,比如 div.clearfix.visible-xs-block
  • 对于某一列想去除间隔,我们可以使用 marign-left: -15px 来消除间隔。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程...
    小辰带你看世界阅读 12,721评论 1 6
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,150评论 0 13
  • 实现原理 网格系统的实现原理,仅仅是通过定义容器大小,平分12份(也有平分成24份或32份,但12份是最常见的),...
    lvyweb阅读 5,511评论 1 2
  • 以后得早点睡觉,最最晚十点睡,女人衰老实在是太可怕了,满脸皱纹的样子真的难以想象。趁着年轻,保养好自己,做年轻人该...
    默然1阅读 780评论 0 0
  • 一个女人 混沌的脸 顺着时间的网 攀爬,蔓延 长发散发着无知 或许是短发 笑声里藏着浅显 她终将孤苦伶仃 临终的床...
    Rachel曹阅读 1,820评论 0 0