webview的弹性布局之rem,em
webview页面的自适应一般有两种方法,即一是JS的计算方法,二是通过css的media设置分档方式。在此主要介绍css的方式。
html {
font-size: 16px;
}
@media only screen and (min-width:360px){
html {
font-size: 18px;
}
}
@media only screen and (min-width:375px){
html {
font-size: 19px;
}
}
@media only screen and (min-width:412px){
html {
font-size: 21px;
}
}
一、设置基准值
设置html的基准值font-size:16px; 然后按照上面的分的iphone4,iphone6和iphone6s的三个分档。
二、选择单位
以下的换算都是以基准16px为准,如果是以ihpne6的尺寸测量的设计稿的话,就将 测量的px值/2/19 就可以计算相应的值。
1. rem的方式
以rem为单位的话,就是以根元素(body)为标准来换算。
<div class="welcom-login">
<div class="logo-login"></div>
<div class="solo"></div>
</div>
.welcome-login{
width: 25rem; /* 400px(实际宽度) / 16(body基准值) = 所求得的值 rem */
height: 12.5rem; /* 200px(实际宽度) / 16(body基准值) = 所求得的值 rem*/
}
.welcome-login .logon-login{
width: 2.5rem; /* 40px(实际宽度) / 16(body基准值) = 所求得的值 rem */
height: 1.25rem; /* 20px(实际宽度) / 16(body基准值) = 所求得的值 rem */
}
因为rem是以根元素的标准来计算的,所以.logo-login 的换算还是 以实际值 除以的 16。不管里面嵌套多少层,都是以设计稿中测量的px值除以基准值。
2. em的方式
需要分情况,当前元素是否有设置font-size的大小。
当没有设置font-size时,当前元素的width和height就继承父级元素的font-size,在计算时就以实际px/父元素的实际字体大小(px),就如.welcome-login .logn-login中计算的值一样。
当需要设置font-size时,font-size的换算是除以父元素的实际大小后所的的值;而此时,该元素的widht和height的计算,就以当前元素的font-size的实际大小(px)为基准来计算,如下面.welcome-login中计算的一样。
.welcome-login{
font-size: 1.5em; /* 24px(实际字体大小) / 16(父元素的实际字体大小) = 所求得的值 em */
width: 16.666667em; /* 400px(实际宽度) / 24(body基准值) = 所求得的值 em */
height: 8.333333em; /* 200px(实际宽度) / 24(body基准值) = 所求得的值 em*/
}
.welcome-login .logo-login{
width: 1.666667em; /* 40px(实际宽度) / 24(父元素的实际字体大小) = 所求得的值 em */
height: .833333em; /* 20px(实际宽度) / 24(父元素的实际字体大小) = 所求得的值 em */
}





更多详细介绍可以参考
http://www.uml.org.cn/html/201207311.asp
webview的弹性布局之rem,em的更多相关文章
- web app 自适应方案总结 关键字 弹性布局之rem
关于rem,主要参考文档 1.腾讯ISUX (http://isux.tencent.com/web-app-rem.html) 2.http://www.w3cplus.com/css3/defin ...
- web app 自适应方案总结 弹性布局之rem
关于rem,主要参考文档 1.腾讯ISUX (http://isux.tencent.com/web-app-rem.html) 2.http://www.w3cplus.com/css3/defin ...
- web app 自适应 弹性布局之rem
关于rem,主要参考文档 1.腾讯ISUX (http://isux.tencent.com/web-app-rem.html) 2.http://www.w3cplus.com/css3/defin ...
- 自适应布局,响应式布局以及rem,em区别
一.自适应和响应式 先说共同点: 两者都是因为越来越多的 移动设备( mobile, tablet device )加入到互联网中来而出现的为移动设备提供更好的体验的技术.用技术来使网页适应从小到大( ...
- 浅谈静态布局、流式布局,rem布局,弹性布局、响应式布局
静态布局: 特点:没有兼容性问题 PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分:移动设备:另外建立移动网站,单独 ...
- 你不知道的css各类布局(五)之em布局、rem布局
em布局/rem布局 em和rem的区别 在了解弹性布局前我们需要先知道em和rem rem:font size of the root element,rem是相对于根元素<html>来 ...
- 前端笔记之移动端&响应式(中)视口&百分比布局&弹性盒模型&rem&fillpage
一.viewport视口 1.1什么是屏幕尺寸.屏幕分辨率.屏幕像素密度? 屏幕尺寸:指屏幕的对角线的长度,单位是英寸,常见的屏幕尺寸有3.5.3.7.4.2.4.7.5.0.5.5.6.0等. 屏幕 ...
- 适用于移动设备弹性布局的js脚本(rem单位)
背景介绍 目前,随着移动设备的普及和4G网络的普及,web在移动端的占比已经远远超过PC端,各种H5页面推广页面,H5小游戏热度火爆.以前简单的使用px单位(没有弹性)的时代已经无法满足各位设计师和用 ...
- CSS3中的弹性布局——"em"的用法
使用CSS也好久了,但一直都是在使用“px”来设置Web元素的相关属性,未敢使用“em”.主要原因是,对其并不什么了解,只知道一点概念性的东西,前段时间在项目中要求使用“em”作为单位设置元素,所以从 ...
随机推荐
- tachyon with spark
spark1.2.0 tachyon0.5.0 jdk1.7 scala2.10.4 1.装好spark.tachyon.jdk.scala 2.修改spark-env.sh添加Tachyon客户端 ...
- mina 粘包、多包和少包的解决方法
转载自:http://freemart.iteye.com/blog/836654 使用过 mina 的同学应该都遇到到过,在解码时少包.多包的问题,查阅了很多资料还是迷迷糊糊的,经过不懈努力,终于解 ...
- (搬运)《算法导论》习题解答 Chapter 22.1-1(入度和出度)
(搬运)<算法导论>习题解答 Chapter 22.1-1(入度和出度) 思路:遍历邻接列表即可; 伪代码: for u 属于 Vertex for v属于 Adj[u] outdegre ...
- 存储过程 <3> 和函数的区别
二.函数和存储过程的优点: 1.共同使用的代码可以只需要被编写一次,而被需要该代码的任何应用程序调用(.net,c++,java,也可以使DLL库). 2.这种几种编写.几种维护更新.大家共享的方法, ...
- Linux文件系统的barrier:启用还是禁用
大多数当前流行的Linux文件系统,包括EXT3和EXT4,都将文件系统barrier作为一个增强的安全特性.它保护数据不被写入日记.但 是,在许多情况下,我们并不清楚这些barrier是否有用.本文 ...
- javaweb学习总结二十六(response对象的用法二 下载文件)
一:浏览器打开服务器上的文件 1:读取服务器上面的资源,如果在web层,可以直接使用servletContext,如果在非web层 可以使用类加载器读取文件 2:向浏览器写数据,实际上是把数据封装到r ...
- BI跟报表一样吗?
一.报表≠BI很多的人认为,报表就是BI.实际上,报表只是BI的一部分,虽然BI应用的结果通常需要通过报表来展示,但是,BI绝对不仅仅是报表.其实,大家对这些概念的理解,如同15年前的ERP一样.19 ...
- React Native开发环境搭建
安装Xcode 安装Homebrew 安装Android SDK 安装flow和watchman 安装nodejs 安装react-native-cli 安装Genymotion 安装Webstorm ...
- 剑指Offer42 左旋字符串
/************************************************************************* > File Name: 42_LeftRo ...
- Matlab之画图
1.设置对数坐标 set(gca,'XScale','log','YScale','log'); 2.加网格 grid on; 3.加log对齐网格 set(gca,'XScale','log','Y ...