设为首页收藏本站关注微信<<< 抵制 IE6 人人有责 >>>
搜索
热搜: 活动 交友 discuz
查看: 2984|回复: 1
打印 上一主题 下一主题

[CSS] css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况

[复制链接]
跳转到指定楼层
楼主
发表于 2015-7-16 19:08:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很基础的一个问题,但是,其实看起来很复杂的样子~~我们来捋一捋吧~~

css3中也对css中用到的单位进行了改进,单位也就是那几个,所以我们要搞清楚再用。

%——百分比
in——寸
cm——厘米
mm——毫米
pt——point,大约1/72寸;
pc——pica,大约6pt,1/6寸;
px——屏幕的一个像素点;
em——元素的font-size;
ex——font-size的x-height值,为小写字母x的高度,通常相当于font-size的一半。
我们常用的有px、%、em,px就不多说了,em和%多说点儿:

.box{ line-height:1.3em; }
元素的行高是当前元素继承的font-size的1.3倍,

.box{ font-size:1.3em; }
当前元素的字体大小是其继承的font-size的1.3倍。

.box{ line-height:130%; }
元素的行高是当前元素继承的font-size的130%倍,等同于1.3em。

.box{ font-size:130%; }
当前元素的字体大小是其继承的font-size的130%倍,等同于1.3em。

恩,迷惑了吗?

em就是基于当前元素的(如果没设置就是继承其父元素的)font-size。

而%对于font-size、line-height等,是基于其父元素的font-size的,而对于text-indent、margin、padding、width等属性,则是基于父元素的宽度的。

CSS3中的单位:
css3中引入了一些新的单位:

ch——字符0(零)的宽度;
rem——根元素(html元素)的font-size;
vw——viewpoint width,视窗宽度,1vw等于视窗宽度的1%;
vh——viewpoint height,视窗高度,1vh等于视窗高度的1%;
vmin——vw和vh中较小的那个。
显然vw、vh、vmin是针对移动设备的,如果视窗大小变化了,这三个值也会跟着相应的变化。

rem单位感觉就是px+em的变体,是否值得使用还要看你自己的取舍:没有px精确也没有em灵活——或者说,比px灵活,比em更精确~~。。。XD。。。

如果没有定义font-size怎么办?

其实不用担心,传说,各个浏览器史无前例的默认 font-size:16px;,所以,即便你在样式文件中忘了定义 font-size 初始值,也可以放心的使用em、rem。

浏览器支持:

rem,各浏览器基本都支持了:

IE9+
FF3.6+
Chrome 6+
Safari 5+
Opera 11.6+
vw、vh、vmin:

Chrome 26+
Firefox 19+
Safari 6.1+
IE 9+ (部分支持)
iOS Safari 6.1+ (部分支持)
android 4.4+

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享淘帖
回复

使用道具 举报

沙发
 楼主| 发表于 2015-7-16 19:08:45 | 只看该作者
px:绝对单位,页面按精确像素展示

em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3新加属性,chrome/firefox/IE9+支持。

(另外需注意chrome强制最小字体为12号,即使设置成 10px 最终都会显示成 12px,当把html的font-size设置成10px,子节点rem的计算还是以12px为基准,所以网上很多文章提到的将html的font-size设为10方便计算不是那么可取)。

rem在移动端应用可参考淘宝的页面http://m.taobao.com (html的font-size通过动态计算获取)

页面基准320px(20px),html font-size值的计算:

[javascript] view plaincopy
var ele=document.getElementsByTagName("html")[0],  
     size=document.body.clientWidth/320*20;  
ele.style.fontSize=size+"px"  
注:需设置meta缩放比1:1
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />

vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。
vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。
vmin:vw和vh中较小的那个。
vmax:vw和vh中较大的那个。
vw, vh, vmin, vmax:IE9+局部支持,chrome/firefox/safari/opera支持,ios safari 8+支持,android browser4.4+支持,chrome for android39支持


其它的单位还有:
%:百分比
in:寸
cm:厘米
mm:毫米
pt:point,大约1/72寸
pc:pica,大约6pt,1/6寸


ex:取当前作用效果的字体的x的高度,在无法确定x高度的情况下以0.5em计算(IE11及以下均不支持,firefox/chrome/safari/opera/ios safari/android browser4.4+等均需属性加么有前缀)
ch:以节点所使用字体中的“0”字符为基准,找不到时为0.5em(ie10+,chrome31+,safair7.1+,opera26+,ios safari 7.1+,android browser4.4+支持)


参考资料:

http://dev.w3.org/csswg/css-values/#font-relative-lengths
http://isux.tencent.com/web-app-rem.html

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|手机版|Archiver|源于生活(个人生活娱乐工作的笔记)css3,html5,学习笔记    

GMT+8, 2024-11-27 12:56 , Processed in 0.093600 second(s), 26 queries .

Powered by Mr.Kevin-ying

© 2004-2015

快速回复 返回顶部 返回列表