响应式设计

在谈论栅格系统之前,我们先了解一下,响应式设计。简单来说,我们在设计的页面的时候,并不知道我们的页面会在什么设备呈现,为了在不同的设备上有最好的呈现效果,我们需要作出一些响应和调整。

响应式 Web 设计(Responsive Web design)的理念是,页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。

响应式设计有几个比较重要的点,包括:

viewport:让页面宽度等于设备宽度

流式布局:百分比和浮动

@media:断点

栅格系统

为了能够更好的使用响应式设计,栅格系统应运而生。通过栅格系统,可以在切分的网格里按顺序叠加不同的宽度,并且易于管理。这样做的好处是显而易见的:

提高生产力,通过在网格的划分,元素更容易堆放而且在跨浏览器上面具有一致性,使我们可以专心的注意布局而不是兼容上。

具有灵活性,无论是什么样的布局,都可以拆分到粒度为一个网格的大小。

支持响应式设计,栅格系统本身能很好的和响应式设计结合在一起,或者说,我们的栅格系统是基于响应式设计的。

栅格系统的实现

grid-elements.png

Container

container.png

一个用于摆放栅格系统的容器。通常我们希望这个容器占满整个整个页面,除非显示设备特别大,这个时候定一个最大宽度,则

.container {

width: 100%;

max-width : 1200px;

}

Row

row.png

用于防止里面的列( column )溢出到其他的行。通常会需要清除浮动,因为我们是通过浮动来制作栅格系统的。

.row:before,

.row:after {

content: "";

display: table;

clear: both;

}

Column

column.png

栅格系统的核心,规定了列的宽度,位置和间隔。而在此之前,我们需要规定所有的盒子模型为 border-box 类型,这样做的原因是避免繁琐的计算和更简单的分列。(当然你也可以让页面上所有的盒子模型都设置为 border-box。)

.container * {

box-sizing: border-box

}

这里我们把每一行分成 6 列,通过将其设置为浮动且百分比,能够很好的制作响应式页面。

[class *= 'col-'] {

float: left;

min-height: 1px;

padding: 12px; /* 设置间距 */

}

.col-1 { width: 16.66%; }

.col-2 { width: 33.33%; }

.col-3 { width: 50%; }

.col-4 { width: 66.664%; }

.col-5 { width: 83.33%; }

.col-6 { width: 100%; }

Responsive

到此为止,我们的栅格系统已经设置的差不多了,为了支持响应式设计,参考 boostrap 的设置,我们可以给不同列设置不同的断点,这里以实现 md 和 sm 两种界限为例子:

@media all and (min-width: 769px) {

.col-md-1 { width: 16.66%; }

.col-md-2 { width: 33.33%; }

.col-md-3 { width: 50%; }

.col-md-4 { width: 66.664%; }

.col-md-5 { width: 83.33%; }

.col-md-6 { width: 100%; }

}

@media all and (max-width: 768px) {

.col-sm-1 { width: 16.66%; }

.col-sm-2 { width: 33.33%; }

.col-sm-3 { width: 50%; }

.col-sm-4 { width: 66.664%; }

.col-sm-5 { width: 83.33%; }

.col-sm-6 { width: 100%; }

}

参考

HTML怎么设置栅格系统,制作你自己的栅格系统 CSS相关推荐

  1. php三级分销系统制作_微分销商城系统创建三级微商分销体系方法

    微分销商城系统如何完善创建三级微商分销体系,微商城的建设成为现在商家的新选,如果成功经营,将会让商家获得大量收益.下面就让摩盒mohe详细说说. 1.系统一键分销功能促使微商城提升销量 分销商城系统的 ...

  2. 遥感栅格标签制作:矢量转栅格

    文章目录 前言 一.ArcGIS矢量转栅格 二.栅格裁剪 前言 在进行监督分类时,往往需要与数据相同大小的栅格标签,这里介绍一下如何将矢量标签转化为栅格标签,这里以二值标签为例. 一.ArcGIS矢量 ...

  3. php投票系统制作,php简单的投票系统[原创]

    php简单的投票系统[原创] include_once("../inc/connect.php"); $value =$_SERVER['HTTP_HOST']; if(empty ...

  4. 详解基于busybox、dropbear、ngnix制作完整的嵌入式Linux系统

    说明:         <一>:查看此博文,建议查看笔者上一篇博文(Linux启动过程),因为只有在完全了解Linux系统启动流程及一些配置文件的相关性,在阅读此博文才能有思路,理解起来更 ...

  5. 跟我学雨林木风系统制作——2.涉及的技术及用到的工具介绍

    封装: 就是将母系统进行初始化,回复到部署前的一个状态.在这个过程中会删除计算机及用户的SID以及序列号等等. 镜像: 将封装好的母系统进行打包,生成一个镜像文件.这个文件就包含了一个完整的操作系统, ...

  6. linux系统启动盘怎么制作工具,windows系统制作linux启动盘工具介绍

    Linux发行版排行榜: http://iso.linuxquestions.org/ http://distrowatch.com/dwres.php?resource=major&lang ...

  7. 一键装机linux_linux系统安装,怎样安装linux系统制作步骤

    如何安装linux系统图-6 安装步骤图-7 4,等待镜像制作完毕后,我们就能在系统里看到制作好的U盘,此时U盘的名称都变成了CentOS 7,如下图所示,我们把U盘拔下来,插到要安装Linux的电脑 ...

  8. 教你自己制作Vista与DOS双系统

    教你自己制作Vista与DOS双系统 随着Windows Vista的到来,各位系统玩家们是不是还是希望玩转双系统呢?你知道其实即使是Windows VISTA环境下我们也能安装最原始的MS-DOS喔 ...

  9. Unity3d中使用自带动画系统制作下雨效果(一)

    之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始. 使用自带动画系统制作下雨效果. 先制作下雨的雨滴涟漪. 步 ...

最新文章

  1. 极限中0除以常数_高中物理必知的50个关键常数, 每个都是得分点!
  2. java final 类_在Java中,final修饰的类有什么特点
  3. (转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)...
  4. jdk1.8hashmap为什么对hash进行了一次扰动处理
  5. 架构漫谈:我心中的架构
  6. Elasticsearch索引分析
  7. ansible备份mysql_ansible做mysql备份和安全加固
  8. uploadify java 上传_jquery使用uploadify插件实现多文件的上传(java版)
  9. Airflow 中文文档:项目
  10. 有的歌声音大有的歌声音小_手机听筒声音小怎么办?别急,只需一把刷子
  11. 利用Struts拦截器完成文件上传功能
  12. html和css的编程规范,Bootstrap CSS编码规范
  13. java判断字符串不为空_Java判断字符串是否为空的方法
  14. android 查看cad方案,安卓手机可以CAD看图吗?怎么查看接收的CAD图纸文件?
  15. 手机APP UserAgent查询
  16. vue 中provide的用法_vue中provide和inject的用法
  17. 科学计算自由软件SCILAB
  18. 【二分答案】买礼物的艰辛
  19. EOS智能合约开发系列(七): 多索引table
  20. 华为鸿蒙os3.0评测,华为鸿蒙OS威力初显!实测体验比EMUI更好 功耗却更低 惊喜还有很多...

热门文章

  1. vhm在服务器上创建虚拟机,一步步实现ABAP后台导入EXCEL到数据库【1】
  2. 微信转发分享app下载链接或指定网页无法打开的解决办法-微信跳转浏览器
  3. Flink重写Iceberg数据湖小文件变大文件
  4. 搜狗图片抓取,主要以图集类进行抓取
  5. 前端实现 微信扫码登录网站 pc端(二维码嵌套页面) 超详细,包会
  6. 基于JavaWeb二手商城设计与实现
  7. 宁波银行前三季净利润171.91亿元,同比增20.16%
  8. 数学建模番外篇7:优秀论文插图整理分析(2018年及之前)
  9. boost::intrusive_ptr的用法
  10. SRM604题解(除T3外)