响应式布局总结(推荐)

所属分类: 网页制作 / 应用技巧 阅读数: 1611
收藏 0 赞 0 分享

响应式布局的开发基础知识

本章主要分为以下几个部分

•正确理解响应式设计
•响应式设计的步骤
•响应式设计需要注意的问题
•响应式网页布局实现原理

第一:正确理解响应式布局

响应式网页设计就是一个网站能够兼容多个终端-而不是为每个终端做一个特定的版本。打个比方来说:现在社会有很多响应产品,例如折叠沙发,折叠床等等,当我们需要把沙发放到一个角落的时候,此刻沙发就好比div吧,而角落里的某个地方就好比父元素,由于父元素空间的改变,我们不得不调整div,让它能够依然放在角落里。在项目中你会遇到不同的终端,由于终端分辨率不同,所以你要想让用户体验更好,就必要让你的页面能够兼容多个终端。

第二:响应式设计的步骤

了解了什么是响应式,那么接下来我们就要说说响应式设计的步骤,有人这时候会说“博主,你傻啊,响应式设计的步骤不就是1.编写非响应式代码、2.加工成响应式代码、3.响应式细节处理、4.完成响应式开发吗?”博主菊花一震 原来高手在民间啊,微微一硬表示敬重,我去 ,说错了 是微微一笑,大家不要误会啊。

言归正传,博主因为是刨根问底拦不组的,所以在此就往响应式设计的祖坟上刨,深入了解下这四个步骤。

1.布局及设置meta标签

当创建一个响应式网站,或者非响应式网站变成响应式的时候,首先要关注元素的布局。我在创建响应式布局的时候习惯先写非响应式布局,页面固定宽度大小,我觉得这个对在座的各位没有任何难度。如果完成了非响应式那么我在去添加媒体查询(Media Query)和响应式代码。这种操作更容易实现响应式特性。

当你完成当你已经完成了无响应的网站,做的第一件事是在你的 HTML 页面,粘贴下面的代码到和标签之间。这将设置屏幕按1:1的尺寸显示,在 iPhone 和其他智能手机的浏览器提供网站全视图浏览,并禁止用户缩放页面。

XML/HTML Code复制内容到剪贴板
  1. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">  
  2. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  
  3. <meta name="HandheldFriendly" content="true">  
  4. user-scalable属性能够解决ipad切换横屏之后触摸才能回到具体尺寸的问题。  

2.通过媒体查询来设置样式media query

media query 是响应式设计的核心,它能够和浏览器进行沟通,告诉浏览器页面如何呈现,假如一个终端的分辨率小于980px,那么可以这样写

XML/HTML Code复制内容到剪贴板
  1.  @media screen and (max-width:980px){   
  2.      #head { … }   
  3.      #content { … }   
  4.      #footer { … }   
  5. }这里面的样式会覆盖掉之前所定义的样式。  

3.设置多种视图宽度

假如我们要兼容ipad和iphone视图,我们可以这样设置:

XML/HTML Code复制内容到剪贴板
  1. /**ipad**/   
  2. @media only screen and (min-width:768px)and(max-width:1024px){}   
  3. /**iphone**/   
  4.  @media only screen and (width:320px)and (width:768px){}  

3.字体设置

到目前为止,开发人员用到的字体单位大部分都是像素,虽然像素在普通网站上是Ok的,但是我们仍然需要响应式字体。一个响应式的字体应关联它的父容器的宽度,这样才能适应客户端屏幕。

css3引入了新的单位叫做rem,和em类似但对于Html元素,rem更方便使用。

rem是相对于根元素的,不要忘记重置根元素字体大小:

XML/HTML Code复制内容到剪贴板
  1. html{font-size:100%;}   
  2. 完成后,你可以定义响应式字体:   
  3. @media (min-width:640px){body{font-size:1rem;}}   
  4. @media (min-width:960px){body{font-size:1.2rem;}}   
  5. @media (min-width:1200px){body{font-size:1.5rem;}}   
  6. 不理解rem的童鞋,在这里给大家推荐一篇写的不错的博客(http://www.cnblogs.com/YYvam1288/p/5123272.html)  

4.响应式设计需要注意的问题

1.宽度不固定,可以使用百分比

XML/HTML Code复制内容到剪贴板
  1. #head{width:100%;}   
  2. #content{width:50%;}  

2.图片处理

在这里我给大家一把钥匙,有人会说,博主,能不能别装逼?图片处理还有啥钥匙,你以为是开门啊,博主,醒醒吧

哎哟 ,我这暴脾气,我说的钥匙不是真的钥匙,而是指图片处理的万能方法,是什么呢?就是图片液态化。接着 会有人问:“什么是图片液态化”呢?这个问题问的很好,给你打99分,多给你一分怕你骄傲,大家都知道水无形 能适合很多容器,那么假如我们把图片当做水 是不是就可以实现图片自适应问题了呢?

在html页面中的图片,比如文章里插入的图片我们都可以通过css样式max-width来进行控制图片的最大宽度,如:

XML/HTML Code复制内容到剪贴板
  1. #wrap img{   
  2.         max-width:100%;   
  3.         height:auto;   
  4.     }   
  5.     如此设置后ID为wrap内的图片会根据wrap的宽度改变已达到等宽扩充,height为auto的设置是为了保证图片原始的高宽比例,以至于图片不会失真。  

除了img标签的图片外我们经常会遇到背景图片,比如logo为背景图片:

XML/HTML Code复制内容到剪贴板
  1. #log a{display:block;   
  2.             width:100%;   
  3.             height:40px;   
  4.             text-indent:55rem;   
  5.             background-img:url(logo.png);   
  6.             background-repeat:no-repeat;   
  7.             background-size:100% 100%;   
  8.             }   
  9.     background-size是css3的新属性,用于设置背景图片的大小,有两个可选值,第一个值用于指定背景图的width,第2个值用于指定背景图的height,如果只指定一个值,那么另一个值默认为auto。   
  10.     background-size:cover; 等比扩展图片来填满元素   
  11.     background-size:contain; 等比缩小图片来适应元素的尺寸  

最后我们来总结下响应式布局的实现原理

首先我们应该遵循移动端优先,交互和设计以移动端为主,pc则作为移动端的扩展,一个页面需要兼容不同终端,那么有两个关键点是我们需要去做到响应式的:响应式布局和响应式内容(图片、多媒体)

XML/HTML Code复制内容到剪贴板
  1. 1.响应式布局   
  2.     1.Meta标签定义   
  3.     2.使用Media Queries适配对应样式   
  4. 2.响应式内容   
  5.     1.响应式图片   

我知道各位还在期待什么,无图无真相,无dome不是瞎说吗,纸上谈兵,放心各位,博主不会这么讨打的下面就贡献出个人制作的响应式布局dome.

XML/HTML Code复制内容到剪贴板
  1. git html 代码https://github.com/lifenglei/mygit/blob/master/xiang.html   
  2. css代码 https://github.com/lifenglei/mygit/blob/master/xiang.css  

好了 博主绞尽乳汁的成果就在这里了,下次我会总结下移动端的布局。

以上这篇响应式布局总结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

原文地址:http://www.cnblogs.com/dreamsboy/archive/2016/07/09/5656009.html

更多精彩内容其他人还在看

CSS中浏览器对尺寸和宽高解释差异的解决方法

不同的浏览器对margin、padding、height、width 等属性的解释有很大的偏差。有时我们发现同样的两列布局,在不同的浏览器中两列长短不一,类似的情况太多了,如此困扰大家的麻烦,如何解决?
收藏 0 赞 0 分享

网页变灰的笔记 细节问题处理

grayscale.js这个文件是用来兼容各个浏览器的,在一般情况下,使用它绝对不会有问题,但是在实际的操作中,还是遇到了一些麻烦。
收藏 0 赞 0 分享

页面中marquee与flash同时存在时的冲突解决方案

冲突的症状主要表现在FLASH按钮一直跳动,不稳定,影响网页美观及正常访问。
收藏 0 赞 0 分享

提高网站访问速度的六种方法

以下6种优化方法都是前端的,前端优化的意义在于减少http请求,减少网站前端程序组成的体积。
收藏 0 赞 0 分享

新鲜出炉的有用图标集25组 国外下载

恰当的图标(ICON)能使网站更具活力 曾几何时,现在的网站图标大同小异,我们的眼睛早已见惯不惊。于是,这里收集了25套专业设计的全新的图标集,希望对你有用!
收藏 0 赞 0 分享

新手建站教程 十天学会做网站

十天学会做网站教程采用最通俗易懂的语言、从最基本的开始,带领大家开始建站。教程由许耀鹏历时半年时间写成。是非常好的新手建站入门教程。
收藏 0 赞 0 分享

新手建站入门教程 建站需要的条件和工具

很多新手在论坛都会说,我从来没做过网站,做网站需要些什么条件啊,会不会很难啊?
收藏 0 赞 0 分享

新手建站入门教程 域名的解析与绑定

昨天我们讲到了建立一个属于自己的网站需要的条件和工具,里面讲到首先需要注册一个属于自己的域名,和需要购买一个虚拟主机。(详情请看:新手建站第一帖:建站需要的条件和工具)
收藏 0 赞 0 分享

新手建站入门教程③ 别名(CNAME)记录和URL转发

在上一帖中为大家介绍了域名的解析和A记录解析的方法,今天我就为大家讲解一下另一种解析方法:别名(CNAME)记录。同时为大家讲解下URL转发的好处和方法。
收藏 0 赞 0 分享

新手建站入门教程④:如何绑定子目录

去买空间的时候,我想很多朋友都已经注意到了,有的空间介绍上会有类似于“支持绑定1个子目录”、“赠送1个子目录”等词。那么这些介绍是什么意思呢?
收藏 0 赞 0 分享
查看更多