制作简约CSS栅栏布局

制作简约CSS栅栏布局

众所周知,Bootstrap内置了一套响应式、移动设备优先的流式栅格系统,随着显示屏幕或视口的改变,自动改变相应的布局。

作者在前段时间用过bootstrap框架,印象最深刻,使用最频繁的便是这栅栏布局,但如果仅仅是为了使用这个栅栏布局就引入一个框架,这明显是非常不明智的,所以便根据bootstrap框架做了一个简约的栅栏布局。


栅栏系统的组成:

1.container 包裹栅栏的容器

2.row 行

3.column 列

首先,这个栅栏系统需要一个总的容器,这样column(列)才能用百分比设置宽高。

.container{

width:100%;

max-width:1366px;

padding:015px;

}

这里为容器(container)添加一个左右padding,是为了防止内容碰触浏览器边缘。

接下来是行(row)

行元素用于防止里面的列( column )溢出到其他的行,接下来的列(column)将会使用浮动布局,所以在row中要清楚浮动,这里,我们采用伪类里添加clear:both

.row:before,.

row:after{

content:" ";

display:table;

clear:both;

}

.row{margin:0-15px;}

为row(行)添加margin-left:-15px 和 margin-right:-15px 用来抵消container中的padding,使background、border等属性可以覆盖到浏览器边缘。

最后是列(column)

我们先为列设置最基本的样式

[class*='col-']{

position:relative;

float:left;

min-height:1px;

padding:0 15px;

}

这里我们把一行(row)分成12列,通过简单的计算就可得出每行的宽度:

.col-12{

width:100%;

}

.col-11{

width:91.66666667%;

}

.col-10{

width:83.33333333%;

}

.col-9{

width:75%;

}

.col-8{

width:66.66666667%;

}

.col-7{

width:58.33333333%;

}

.col-6{

width:50%;

}

.col-5{

width:41.66666667%;

}

.col-4{

width:33.33333333%;

}

.col-3{

width:25%;

}

.col-2{

width:16.66666667%;

}

.col-1{

width:8.33333333%;

}

由于列(column)的宽度单位为响应式的%,我们又设有左右padding,所以为了防止复杂的计算,我们把container中的所有元素都设:box-sizing: border-box;

.container*{

box-sizing:border-box;

}

这样就可以避免一次次的加减,避免宽度过大而换行的问题了。

为列设置偏移量

.col-offset-12 {

margin-left: 100%;

}

.col-offset-11 {

margin-left: 91.66666667%;

}

.col-offset-10 {

margin-left: 83.33333333%;

}

之后代码以此类推。

这样,一个栅栏系统就完成了!可以写一个简单的样例进行测试。

研究了半天,不知道怎么放HTML代码...大家自己测验下吧~

最后,为栅栏系统设置响应式布局

响应式布局是利用HTML5的media查询来查询屏幕宽度,进而进行CSS的修改。

这里,当我们的屏幕宽度小于960px时,我们采用两倍列的宽度,即两列变一列:

@mediaall and (max-width:960px){

.col-12{

width:100%;

}

.col-11{

width:100%;

}

.col-10{

width:100%;

}

.col-9{

width:100%;

}

.col-8{

width:100%;

}

.col-7{

width:100%;

}

.col-6{

width:100%;

}

.col-5{

width:83.33333333%;

}

.col-4{

width:66.66666667%;

}

.col-3{

width:50%;

}

.col-2{

width:33.33333333%;

}

.col-1{width:16.66666667%;}

这样,一个基本的栅栏系统就完成了,当然你还可以根据媒体查询,查询屏幕宽度小于640,320等,这些就不再重复累赘。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • Bootstrap是什么? 一套易用、优雅、灵活、可扩展的前端工具集--BootStrap。GitHub上介绍 的...
    凛0_0阅读 13,734评论 3 184
  • 大家好,我是IT修真院成都分院第7期的学员韩建名,一枚正直纯洁善良的WEB前端程序员。 1.背景介绍 Bootst...
    inh_阅读 4,177评论 0 2
  • CSS3 媒体查询与响应式布局 第一章 序论 现今每天都有更多的手机和平板电脑问市。消费者能够拥有可想象到的各种规...
    whitsats阅读 10,309评论 0 10
  • 楚甜:女主角 年龄:16(高一上学期) 星座:双子(1998年出生) 性格:内向,冷淡,孤独,但是向往热闹,有点双...
    可可豆子阅读 3,047评论 0 5