前端【响应式】开发详细解析

一、响应式设计需要解决的问题是什么?

针对目前大家常见的固定布局、自适应布局都是一种反应迟钝的web设计,当Web页面需要在各种显示屏显示时,他们就显得力不从心了。因此,我们就需要相应设计。

优势:

一个页面适应各种显示屏;

具有良好的SEO;

较大缩短开发周期;

给用户更多的选择,更好的用户体验;

二、响应式包含哪些部分?

在学习响应式设计时,我们需要知道以下几个常见的术语。

1、流体网格

一个简单的网格系统,将每个格子使用百分比单位来控制网格大小,其优势是网格随着屏幕大小作出对于的比例缩放。

2、弹性图片

弹性图片是指不给图片设置固定尺寸,而更具流体网格进行缩放来适应不同的尺寸。实现方法如下代码:

img{

max-width:100%;

}

注:IE8中会使图片不显示,所以需在IE8中增加对于hack样式。

3、CSS3 Media Queries

它是响应式设计最关键的一个应用,它可以根据浏览器窗口的大小、方向、屏幕规格选择对于的样式文件。

4、屏幕分辨率

所谓屏幕分辨率是指:分辨率是1920设备像素*1080设备像素,在纵向上排列了1080个显像用的小点,在横向上排列了1920个显像用的小点,同一尺寸的屏幕下,分辨率越高(横向、纵向上的显像点越多越小)屏幕越清晰。

问题:在高清屏和普通屏下,css的100px展示会不会有差异?

答案是:不会有差异!

在普通的屏幕下1px占用一个设备像素,而在高清屏幕下(如苹果的视网膜屏)1px占用2个设备像素。以iphone6来说物理像素是750 * 1334,因为是高清屏幕,所以用px来度量的话就是 375px * 667px。这个可以在chrome浏览器的调试模式下查看。

5、主要断点

断点是为min-width和max-width服务的。@media (min-width:320px){}

三、One More Thing?

1、自适应布局盒响应式布局区别

自适应布局:就是我们常见的百分比布局,它可以让你的布局在不同分辨率下适应其大小,但这种布局需要一个最小宽度来辅助实现,不然在一定尺寸下,整个布局会乱掉,只不过这种不固定值是%而不是px。

响应式布局:是一个多列流体布局,其利用的是媒体查询来实现web页面在不同分辨率下的完美呈现,和自适应布局还是有本质上的差别。

2、em在响应式设计中的运用

em和font-size优很大关系,它也是css的一个度量单位,不过它比px更适合响应式设计,他能让你的断点根据字号大小来调整其值。

20em = 20 * 16 = 320px

30em = 30 * 16 = 480px

@media only screen and (min-width : 20em) {}

@media only screen and (min-width : 30em) {}

3、常用css单位

常用有三种:px em %

px:浏览器的度量单位,相对于物理像素,1px在高清屏幕下可能占用2个物理像素、甚至3个物理像素。

em:相对于父元素的font-size,如父元素font-size设置为16px,子元素font-size设置为0.75em,那么转换为px就是0.75 * 16px = 12px;

%:相对于父元素的长度高度,position:fixed 、absolute 除外(fixed将相对于窗口、absolute相对于递归父元素知道 第一个设置了position的元素)

rem:相对于根节点(一般为html节点)的font-size,如果html节点设置font-size = 100px,那么文档中的元素设置为0.3rem,则计算为:0.3 * 100px = 30px

vh/vw:相对于设备的可视范围,在移动端中经常会用到,比如:设计师经常要求,banner占满首屏高度既:100vh。如iphone6 (375px * 677px)= (100vw * 100vh) ,而iphone6 plus (414px * 736px) = (100vw * 100vh) 两种屏幕下的vw、vh是不一样的。

clac:css3中的长度计算语法,支持+、-、*、/的计算。

四、响应式设计关键三步

第一步、设置meta标签

使用设备的宽度为视图的宽度,禁止默认的自适应页面的效果,禁止缩放效果。如下:

 

由于IE6-IE8不支持响应式设计,所以需增加相应插件来支持respond.js或者media-queries.js,如下:

 

<!--[if lt IE9]>

<script src='http://xxx/response.js'></script>

<![end]-->

第二步、HTML MarkUp

基础一般会包括:头部、导航、内容、页脚。

第三步、媒体查询

1、一般用min-width和max-width来检查各种设备的分辨率大小

@media screen and (min-width : 768px) {}

@media screen and (max-width : 1024px) {}

@media screen and (min-width : 768px)  and (max-width : 1024px) {}

2、设备宽度device-width主要用在苹果产品上

@media screen and (min-device-width : 768px)  and (max-device-width : 1024px) {}

3、调用独立样式表

常用模板:

1024px显示屏:@media screen and (max-width : 1024px) {}

ipad横屏:@media screen and (max-device-width : 1024px) and (orientation:landscape) {}

ipad竖屏:@media screen and (max-device-width : 768px) and (orientation:portrait) {}

iphone和smartPhone:@media screen and (min-width : 320px)  and (max-width : 480px) {}

大屏幕、中屏幕、小屏幕的划分:

小屏幕:<769px;@media only screen and (min-width : 769px) {}

中屏幕:769~1366px或者769~1440px;@media only screen and (min-width : 769px) and (max-width:1366px){}

大屏幕:1366~1920px;@media only screen and (min-width : 1367px) {}


更多视频教程请关注微信公众号!!!!!!!

posted @ 2017-11-02 14:49  garsonguo  阅读(2047)  评论(0编辑  收藏  举报