移动端适配---响应式布局---rem布局---vw布局--网易适配

摘要:
(无用户缩放)1<PS中的测量像素的大小不同于web中的移动预览,1@mediaalland(最大-1040px)和(最小-768px){2div}宽度:

rem和vw布局主要都是为了更好地适配移动端,毕竟手机的型号太多了。

在进行移动端设计的时候,首先要引入一个meta标签。(禁止用户缩放)

1 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> 

 我们在刚开始接触移动端的时候,可能都会遇到这种情况:

PS中量取像素和web中手机预览的大小不太一样,似乎感觉web预览效果上要比UI设计图上的尺寸大。

这是因为手机显示像素与我们用ps量取的像素有一定的比例!

在2010年,iPhone4发布会中,苹果推出了“Retina”高清视网膜显示屏。用易懂的白话来说就是能在1个像素单位里面显示4个像素,也就是说如果你在ps中量取了一个1px宽,1px高的盒子,那么它在手机上就会显示出看起来2px宽,2px高盒子的样子。如果想和设计图相吻合,那就必须在量取的基础上除以2。

 市场上手机型号太多,屏幕大小也各自不同,所以要通过便于维护而且实际适用的方式来开发页面。

1. 响应式布局 and 媒体查询  

响应式布局:根据当前不同设备,响应不同代码。

媒体查询:对设备提出询问开始,如表达式结果为真,媒体查询中的css被应用,如为假,则忽略。

1 @media all and (max-1040px) and (min-768px){
2             div{width:31%;}
3         }
4 @media all and (max-767px) and (min-450px){
5             div{width:45%;}
6         }
7 @media all and (max-449px){
8             div{width:90%;}
9         }

其中,all代表所有设备。如果and后括号里为orientation:portrait,代表竖屏;为orientation:landscape,代表横屏

2. rem布局  

 所谓rem布局,就是结合媒体查询,随着设备的改变更改html的font-size值。

 设备像素比(DPR)= 物理像素(PS中量取的) /  逻辑像素(手机所显示的)

设备型号设计图尺寸DPR
iPhone4/4s640px2
iPhone6/7/8750px2
iPhone6/7/8P1080px3

window.devicePixelRatio是设备上物理像素和设备独立像素(device-independent pixels (dips))的比例。

以iphone4为例,设计图为640px,那么我们就应将手机宽度设置为640/2 = 320px。如果一个div量取的宽度为10px,那么相应的在手机中的css宽度就应该设置为10 / 2 = 5px。

如果,html的font-size值为16px,那么 1rem = 16px;

3. vw布局  

vw 当前设备屏幕宽度1/100响应式的值。

vh 当前设备屏幕高度1/100响应式的值。

vmin  vw和vh中较小的

vmax   vw和vh中较大的

100vw = 视口width的100%;   100vh = 视口height的100%。

注意:当出现垂直滚动条时,100vw≠100%; 100vw包含滚动条,100%不包含。

vw和rem相结合

为了方便计算,可以将html的font-size值设置为100px,但是100px是一个固定值,没有办法随着设备的改变而改变。下面用vw来解决html的font-size问题。

第一种情况:

UI设计图为750px =>  dpr为2  =>  适配核心设备375px  =>  100vw = 375px  =>  1vw =  3.75px  =>  100px = 26.67vw 。

所以=>  html{font-size:26.67vw};

如果量取一个盒子宽度为100px。那么css中就应该设置为0.5rem (100px / 2 = 50px,50px / 100 = 0.5rem)。.

第二种情况:

UI设计图为640px =>  dpr为2  =>  适配核心设备320px  =>  100vw = 320px  =>  1vw =  3.20px  =>  100px = 31.25vw 。

所以=>  html{font-size:31.25vw};

如果量取一个盒子宽度为100px。那么css中就应该设置为0.5rem (100px / 2 = 50px,50px / 100 = 0.5rem)。

第...种情况:依次类推......

4. 网易适配  

由于存在一种比例关系=>设计稿宽度  : 设备宽度  =  设计稿中元素宽度   : 设备中元素的宽度

得出  设备中元素宽度  = 设计稿中元素宽度 * 设备宽度  /  设计稿宽度

由于1rem = 根元素html 的font-size值。为了方便计算,给“公式中”设计稿元素宽度固定为100。那么每次量取元素时除以100,添加rem单位,即为设备中元素像素值

设计稿宽度为750px,设备宽度为375,一div宽度为36px。

1.html的font-size设置为  100 * 设备宽度(375)  /  设计稿宽度(750)

2.设备div宽度  =   设计稿中div宽度(36) * 设备宽度(375)  /  设计稿宽度(750)

3.由于单位为rem,所以量取时除以100,添加rem单位。0.36rem

(36/100)rem   =   (36/100)  *  ((100 * 375) / 750)   =  36  *  375  /  750   =  18px

转换为vw方法  =>

1 font-size: calc(100vw/7.5);
2 font-size: -webkit-calc(100vw/7.5);

免责声明:文章转载自《移动端适配---响应式布局---rem布局---vw布局--网易适配》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇UE中使用正则表达式的一些技巧Tomcat学习总结(10)——Tomcat多实例冗余部署下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS 绘制1像素的线

一、Point Vs Pixel iOS中当我们使用Quartz,UIKit,CoreAnimation等框架时,所有的坐标系统采用Point来衡量。系统在实际渲染到设置时会帮助我们处理Point到Pixel的转换。 这样做的好处隔离变化,即我们在布局的事后不需要关注当前设备是否为Retina,直接按照一套坐标系统来布局即可。 实际使用中我们需要...

c# asp.net 日历控件(9)

Calendor控件为用户显示一个日历。它还提供日历选取功能。Calendor控件必须放在Form或者Panel控件内,或者控件的模板内。在添加Calendor控件之后。它一次显示一月的日期。另外,它还显示该月之前的一周和之后的一周。因此,可以显示六周。  FirstDateOfWeek 设置要在控件中的第一天列显示一周的某天  NextMonth...

Android各种屏幕分辨率(VGA、HVGA、QVGA、WQVGA、WVGA、FWVGA) 详解 .

http://blog.csdn.net/lucherr/article/details/8498400 看资料的时候经常看到各种VGA,全都混了,无奈,找了些资料总结了下,分享给大家: 这些术语都是指屏幕的分辨率。VGA:Video Graphics Array,即:显示绘图矩阵,相当于640×480 像素;HVGA:Half-size VGA,即:VG...

border-radius bug 收集

border-radius我相信对于老一辈的前端们有着特殊的感情,在经历了没有圆角的蛮荒时代,到如今 CSS3 遍地开花,我们还是很幸福的。 然而即使到了三星大脸流行时代,border-radius在移动端的表现依旧差强人意,主要有两点问题: 一、Android 2.3 自带浏览器不支持 % 通常我们实现一个正圆只需要border-radius: 50%即...

DNS_PROBE_FINISHED_NO_INTERNET 之解决

某日电脑无法上网 wifi显示黄色叹号 确定同wifi下设备连接正常 使用windows自带的网络诊断 提示无法处理  也没有问题提示信息 开个浏览器提示 DNS的错误 ‘DNS_PROBE_FINISHED_NO_INTERNET’ 查之 找到了如下三味药剂 netsh int ip reset  //- 重置 IP 配置 netsh winsock r...

MIUI 10以上版本通用线刷ROOT方法

1.高版本系统解锁     (解锁工具下载)     http://www.miui.com/unlock/index.html     注意事项:登陆解锁工具的账号必须是登陆小米手机的账号     解锁步骤在解锁工具上有说明,就两个步骤。 2.解锁 安装小米助手最新版本  清空数据:关闭手机-按住关机+音量加-选择清空数据    关闭手机- 打开小米助手...