很多网页都是基于网格设计的,这说明网页是按列来布局的。

原理就是讲网页分成十二列,每列的宽度是8.33%,元素的宽度,用几列来定义,正是因为这一点,才可以做到响应,就是随着窗口宽度的变化,给元素分配不同的列数!

比如:

大于1280px的时候,三个元素,两边的各占三列,中间的占六列

小于1280px大于980px的时候,左边占六列,中间的占六列,右边占十二列(此时右边就换行了)

小于980px的时候,左右中都占十二列,各占一行。

我们怎么获取当前窗口的宽度呢,就需要用到实现响应式的基础:媒体查询

@media only screen and (max-width:xxx)and (min-width:xxx){srules} max-width代表:当前窗口宽度小于max-width时,执行内部代码   min-width:代表窗口宽度大于min-width时候,才会执行内部的代码。

@media  (max-device-width:xxx) and (min-device-width:xxx){srules} device:加device后,可以获取移动端设备的宽度

orientation:landscape /portrait  前者代表横屏,后者代表竖屏;可以直接用and连接在上面语句中做限制

关键字:

only:代表限定某种设备

(几种常用的设备)all 所有设备 handheld:移动设备 screen:电脑屏幕 tv 电视

and:用来连接条件

not:排除某种设备

明白了这些我们就可以做一个简单的响应式程序

          *{
box-sizing: border-box;
}
.top{
padding: 8px;
background: skyblue;
height: 50px;
}
.left>ul{
list-style-type:none;
}
.left>ul>li{
padding: 8px;
height: 30px;
font-size:14px;
background: deepskyblue;
}
.middle{
padding: 20px;
text-align: center;
}
.right{
height: 152px;
padding:16px;
/*height: 120px;*/
background: pink;
/*transition:*/
}
.bottom{
padding: 8px;
height: 50px;
background: greenyellow;
}
[class *= "col-"]{
float: left;
}
.col-m-1 {width: 8.33%;}
.col-m-2 {width: 16.66%;}
.col-m-3 {width: 25%;}
.col-m-4 {width: 33.33%;}
.col-m-5 {width: 41.66%;}
.col-m-6 {width: 50%;}
.col-m-7 {width: 58.33%;}
.col-m-8 {width: 66.66%;}
.col-m-9 {width: 75%;}
.col-m-10 {width: 83.33%;}
.col-m-11 {width: 91.66%;}
.col-m-12 {width: 100%;}
@media only screen and (max-width: 1280px) {/*max:宽度小于它,才会执行内部代码 min:宽度大于它就会执行内部代码*/
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}
}
@media only screen and (max-width:980px ) {
.col-x-1 {width: 8.33%;}
.col-x-2 {width: 16.66%;}
.col-x-3 {width: 25%;}
.col-x-4 {width: 33.33%;}
.col-x-5 {width: 41.66%;}
.col-x-6 {width: 50%;}
.col-x-7 {width: 58.33%;}
.col-x-8 {width: 66.66%;}
.col-x-9 {width: 75%;}
.col-x-10 {width: 83.33%;}
.col-x-11 {width: 91.66%;}
.col-x-12 {width: 100%;}
}

  

          <div class = "top col-m-12" >
            这就是一个top栏
          </div>
          <div class = "left col-m-3 col-6 col-x-12">
<ul>
<li>baidu</li>
<li>Ali</li>
<li>JD</li>
<li>Tecent</li>
</ul>
</div>
<div class = "middle col-m-6 col-6 col-x-12">
我一个人喝酒,一个人跌进拥挤的人潮
</div>
<div class = "right col-m-3 col-12 col-x-12">
wow!fatanstic!
</div>
<div class = "bottom col-m-12">
just bottom
</div>

  明白了原理之后,这些代码为什么这么写就很容易明白了

需要注意的是:我们给页面所有的原色加样式的时候有这么一句代码:

box-sizing:border-box

正常情况下我们默认的盒模型是 content-box,content-box盒子的宽高为:width+padding+border border-box的盒子的宽高就是我们给他设的width

border-box没有底线,你给我jiaborder padding 我都用自己的地盘来分给它们,content-box会一直向外侵略,占据别的空间。所以我们需要有这样一句代码,保证在给元素加padding或者border的时候就不会导致他的宽度变化。

大于1280px:

大于980小于1280

小于980:

响应式web设计(一)的更多相关文章

  1. 响应式WEB设计的9项基本原则

    响 应式Web设计对于解决多类型屏幕问题来说是个不错方案,但从印刷的角度来看,其却存在着很多的困难.没有固定的页面尺寸.没有毫米或英寸,没有任何物理 限制,让人感到无从下手.随着建立网站可用的各种小工 ...

  2. 最佳的 14 个免费的响应式 Web 设计测试工具

    一旦你决定要搭建一个网站就应该已经制定了设计标准.你认为下一步该做什么呢?测试!我使用“测试”这个词来检测你网站对不同屏幕和浏览器尺寸的响应情况.测试在响应式网页设计的过程中是很重要的一步.如果你明白 ...

  3. <HTML5和CSS3响应式WEB设计指南>译者序

    "不是我不明白,这世界变化快."崔健的这首歌使用在互联网领域最合适不过.只短短数年的功夫,互联网的浪潮还没过去,移动互联网的时代已经来临.人们已经习惯将越来越多的时间花在各种移动设 ...

  4. 如何通过CSS3 实现响应式Web设计

    如何通过CSS3 实现响应式Web设计: 分为三个步骤:(1)允许网页宽度自动调整.首先在页面头部中,我们需要加入这样一行:<meta name="viewport" con ...

  5. [转]响应式WEB设计学习(1)—判断屏幕尺寸及百分比的使用

    原文地址:http://www.jb51.net/web/70360.html 现在移动设备越来越普及,用户使用智能手机.pad上网页越来越普遍.但是传统的fix型的页面在移动终端上无法很好的显示.因 ...

  6. css014 响应式web设计

    css014 响应式web设计 一.    响应式web设计基础知识 1.rwd的三大理念:a.用于布局的弹性网络, b.用于图片和视频的弹性媒体,c.为不同屏幕宽度创建的不同样式的css媒体查询. ...

  7. CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

    基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 ...

  8. 推荐35个新鲜出炉的响应式 Web 设计实例

    响应式设计的准则在于根据用户使用的屏幕的分辨率来改变网站的的布局.因此,视频或图像的大小和文本的数量,可以被视为是一个明显的变化.让你即使从智能手机浏览一个网站的时候能轻松地看到网站上的重要内容.今天 ...

  9. 响应式Web设计(Responsive Web design)

    中文名 响应式Web设计 提出时间 2010年5月 英    文 Responsive Web design 解    释 一个网站能够兼容多个终端 目    的 解决移动互联网的浏览 优    点 ...

  10. 什么是响应式Web设计?怎样进行?

    http://beforweb.com/node/6/page/0/3 开始第一篇.老规矩,先无聊的谈论天气一类的话题.十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡.话说两年前也 ...

随机推荐

  1. LINUX 安装扩展(笔记)

    1.下载扩展包: 网址:http://pecl.php.net/ 2.解压安装包. 3.进入解压好的安装包. 4.使用php中的phpize (扩展模块) 使其生成configure. 5../con ...

  2. 04 Javascript的数据类型 数组 函数

    javascript:包含ECMAscript DOM BOM 描述了以下内容: 语法 类型 语句 关键字 保留字 运算符 对象 引入方式: <script> alert(123) < ...

  3. django开发网站 让局域网中的电脑访问你的主机

    1. 关闭主机电脑上的防火墙(不用关闭,加一个端口号就行) 2.在你的settings.py文件中,找到ALLOWED_HOSTS=[ ],在中括号中加入你在局域网中的IP.如我在局域网中的IP为19 ...

  4. 12Linux_Apache_vsftpd(匿名开发模式)

    网站:让我们的用户可以通过浏览器去访问到的文档的资源. windows:IIS Linux:Apache Nginx(吃得少,干的多) APACHE:基金会,公司,软件 httpd:软件名称,软件包名 ...

  5. linux随机字符串

    pwgen  -s 32 1 openssl passwd -salt openssl rand -base64 32 openssl rand -hex 100

  6. springboot中logback配置

    <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...

  7. 推荐几个IDEA插件,Java开发者撸码利器(转载)

    推荐几个IDEA插件,Java开发者撸码利器.   这里只是推荐一下好用的插件,具体的使用方法不一一详细介绍. JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件,用 ...

  8. PostgreSQL在windows 10上的下载和安装

    一.下载 PostgreSQL Windows版本下载地址: https://www.postgresql.org/download/windows/ 下载地址包含2个版本,根据个人喜好下载即可: 1 ...

  9. python中文件处理--判断文件读取结束方法

    一.readline函数 按行遍历读取文件的方法,通过这个方法,readline() 每次只读取一行,通常比 .readlines() 慢得多.仅当没有足够内存可以一次读取整个文件时,才应该使用 .r ...

  10. ELK日志分析平台搭建

    ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自:http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应 ...