css 相对单位rem详解

 

 

CSS3新增了一个相对单位rem(root em,根em),这个单位引发了普遍关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优势于一身,经过它既能够作到只修改根元素就成比例地调整全部字体大小,又能够避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,全部浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。html

CSS3的出现,他同时引进了一些新的属性,包括咱们今天所说的rem。在W3C官网上是这样描述rem的——“font size of the root element” 。java

em单位是相对于父节点的font-size,会有一些组合的问题,而rem是相对于根节点(或者是html节点),也就是说你能够在html节点定义一个单独的字体大小,而后全部其余元素使用rem相对于这个字体的百分比进行设置,这样就意味着,咱们只须要在根元素肯定一个参考值,在根元素中设置多大的字体,这彻底能够根据您本身的需.浏览器

例子:字体

html { font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/ } body { font-size: 1.4rem;/*1.4 × 10px = 14px */ } h1 { font-size: 2.4rem;/*2.4 × 10px = 24px*/ } p {font-size:14px; font-size:1.4rem;}/*IE8及以前版本的IE浏览器使用14像素*/

根元素中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,若是没有设置,将是以“16px”为基准 )。spa

从上面的计算结果,咱们使用“rem尺寸字体”就像使用“px尺寸字体”同样的方便。.net

这彻底能够根据您本身的需,你们也能够参考下图:code

在用户使用“查看 > 文字大小”菜单调整网页文本大小的时候,IE9及更早版本只能缩放以相对单位设定的文本(使用像素之类的绝对单位设定的文本没法缩放)。换句话说,使用rem单位在IE7和IE6中存在一个小小的反作用,那就是这些浏览器的用户必须使用“查看 > 缩放”来调整整个页面的大小。固然,这也算一个应该升级到现代浏览器的缘由吧。htm

 
 
EM特色
 
  1. em的值并非固定的;
  2. em会继承父级元素的字体大小。
因此咱们在写CSS的时候,须要注意两点:
  1. body选择器中声明Font-size=62.5%;
  2. 将你的原来的px数值除以10,而后换上em做为单位;
  3. 从新计算那些被放大的字体的em数值。避免字体大小的重复声明。 也就是避免1.2 * 1.2= 1.44的现象。
 
好比说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 由于此em非彼em,它因继承#content的字体高而变为了1em=12px。
 
例子
 
html { font-size: 100%; }
.box-0 {
    height: 1em; /* 此时height等于16px */
} www.111cn.net
.box-1 { 
    font-size: 0.625em; /* 此时基准字号以变动为16*0.625=10px */ 
    height: 1em; /* 此时实际height等于10px */
}
相关文章
相关标签/搜索