移动端布局2:vw结合rem实现移动端布局

摘要:
上一回说到了媒体查询结合rem做移动端布局,步骤如下首先设置媒体查询,确定html中font-size值的变化@mediaalland{html{font-size:12px;}}@mediaallandand{html{font-size:14px;}}@mediaalland{html{font-size:16px;}}实现步骤:1:例如设计图为750px.设计图量出height为88px;2:考虑dpr为2,量出header高度为88px,所以88px/2==44px3:44px==?rem;今天就是在上一次的基础上再加以改进。媒体查询结合rem计算数值太费劲,每次都要用计算器算。
上一回说到了媒体查询结合rem做移动端布局,步骤如下

首先设置媒体查询,确定html中font-size值的变化

			@media all and (max-320px){
				html{font-size:12px;}
			}
			@media all and (min-321px) and (max-375px){
				html{font-size:14px;}
			}
			@media all and (min-376px){
				html{font-size:16px;}
			}

实现步骤:

		1:例如设计图为750px .设计图量出height为88px;
		2:考虑dpr为2,量出header高度为88px,所以88px / 2 == 44px
		3:44px == ?rem
		4:因为设计图为750px 所以范围在(min-321px) and (max-375px)   所以现在1rem == 14px;
		5:44px / 14px == ?rem;
今天就是在上一次的基础上再加以改进。媒体查询结合rem计算数值太费劲,每次都要用计算器算。而vw就不一样了,只需要先除以dpr,再除以100,口算比较容易。

直接在重置样式后面写上定义html中font-size的值就行。

如果设计图为640px  html{font-size:31.25vw}
如果设计图为750px  html{font-size:26.67vw}

实现的步骤:
1:例如设计图为750px .设计图量出height为88px;
2:考虑dpr  88px / 2 == 44px
3:44px / 100 == 0.44rem   (26.67vw 或者31.25vw   等同于  100px)

原理分析:

1.rem

rem是相对于根元素的字体大小的单位
rem能等比例适配所有的屏幕,根据html的字体的大小来控制rem的大小

2.dpr设备像素比

复制代码
dpr = 物理像素 / 逻辑像素
物理像素:设计图量出的px(设备显示的px)
逻辑像素:css中设置的px
如果设计图的宽度是640px 或者 750px dpr = 2
如果设计图的宽度是1080px dpr = 3
复制代码

3.vw

视窗宽度
1vw 等于视窗宽度的1%
100vw 等于视窗宽度的100%

4.vw 与 px 之间的换算

复制代码
如果设计图的宽度是640px  则 dpr = 2
所以:逻辑像素 = 640px /2 = 320px
所以:320px = 100vw
所以:1vw = 3.2px
所以:31.25vw = 100px = 1rem
复制代码
复制代码
如果设计图的宽度是750px  则 dpr = 2

所以:逻辑像素 = 750px /2 = 375px
所以:375px = 100vw
所以:1vw = 3.75px
所以:26.67vw = 100px = 1rem
复制代码
复制代码
如果设计图的宽度是1080px  则 dpr = 3

所以:逻辑像素 = 1080px / 3 = 360px
所以:360px = 100vw
所以:1vw = 3.6px
所以:27.78vw = 100px
复制代码

5.根元素字体大小的限制

复制代码
如果设计图宽度为640px
则:根元素设置为
html{font-size:31.25vw}
如果设计图宽度为750px
则:根元素字体大小设置为
htmt:{font-size:26.67vw}
如果设计图宽度为1080px
则根元素字体大小设置为
html:{font-size:27.78vw}
复制代码

6.计算方法:

复制代码
为了方便计算:1rem = 100px,,所以,要除以100
已知 dpr = 2
如果量取设计图的某部分 宽度 300px
物理像素-------逻辑像素-------rem
则:300/2/100 = 1.5rem
复制代码
7.rem是相对于根元素的字体大小的单位,能等比例适配所有的屏幕,根据html的字体的大小来控制rem的大小
复制代码
如果设计图为 640px
根元素font-size=31.25vw 相当于100px,相当于 1rem
 
如果设计图为750px
根元素font-size=26.67vw 相当于100px,相当于 1rem
 
一般,我们要在公共样式中根据设计图的大小,设置根元素字体的大小,单位为vm,
如果设计图为640px,html{font-size:31.25vw}
如果设计图为750px,html{font-size:26.67vw}
 
然后,我们量取得px/2/100即:物理像素/2/100
复制代码

8、分析

1vw表示1%的屏幕宽度,而我们的设计稿通常是750px的,屏幕一共是100vw,对应750px,那么1px就是0.1333333vw,又因为dpr为2,所以真正意义上讲1px为0.2667vw。

同时我们知道rem,rem是相对html元素的字体大小,为了方便计算,我们取html的font-size=100px,通过上面的计算结果1px是0.13333333vw,那么100px就是13.333333vw了

所以,我们让1rem=100px=13.333333vw

我们可以直接在html中设置 font-size:13.333333vw; 也可以使用css中的 calc()函数,上代码

html {
       font-size: calc(100vw / (750/2) * 100);
      }

.

免责声明:文章转载自《移动端布局2:vw结合rem实现移动端布局》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt4.8.6与VS2008的集成开发环境的安装配置磁盘配额下篇

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

相关文章

移动端网页点击延迟及事件穿透

一、click事件的300毫秒延迟是怎么产生的? 苹果在2007年发布iphone前夕遇到一个问题,当时相应的网页都是针对大屏编写的,如果直接在iphone上浏览则会出现横向的滚动条,于是他们制定了一些规则来缩放网页,通过双击可以还原网页大小,这种方法后来被其它移动浏览器厂商所采用。300毫秒延迟产生的原因就在于当用户一次点击屏幕之后,浏览器并不能立刻判断...

移动端通过ajax上传图片(文件)并在前台展示——通过H5的FormData对象

前些时候遇到移动端需要上传图片和视频的问题,之前一直通过ajax异步的提交数据,所以在寻找通过ajax上传文件的方法。发现了H5里新增了一个FormData对象,通过这个对象可以直接绑定html中的form元素,然后通过ajax提交的时候直接提交这个对象就好了。 在移动端调用视频和音频: <input type="file"accept="image...

前端er们如何最快开发h5移动端页面?

声明在前:本文原创,一字一字手打,转载还请消息M我一下,求伸手党手下留情。   一直以来对web移动端的东西做的比较多,总是在做确从来没总结过,于是想对移动端的框架选择到相关技巧,进行一个归纳。首先声明,我也是只萌新,不是大神,肯定会有写得不够严谨的地方,欢迎指正~互相交流,若有忍不了的地方,求轻喷,轻喷,喷.....   以下为正文:   互联网已经进入...

网页在pc端与移动端的兼容问题

一、浏览器的默认font-size 火狐,谷歌,IE默认16px 二、根元素的font-size设置 1、许多方法测试所得(网上)兼容电脑浏览器缩放的html {    font-size: 62.5%;}@media only screen and (min- 481px){    html {        font-size: 94%!importa...

html5实现移动端下拉刷新(原理和代码)

这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。 <!DOCTYP...

移动端开发经常遇见的问题以及解决方案

1.移动端左右滑动右侧有留白出现这种问题的话查看一下自己的css中有没有用到position:relative或者position:absolute,我做页面的时候经常遇到这个问题,百分之一百是这个原因。解决方案:只要设置html,body的width为100%,overflow:hidden就可以了。 2.iOS点击事件无效果的几个方案1)为css添加c...