px,em,rem差PXpx像素(Pixel)。相对长度单位。Pixelpx是相对于显示器的屏幕分辨率的。px特性IE无法调整以px为单位的字体大小;大部分国外网站都可以调整原因,因为他们使用em或rem作为字体单位;Firefox可以调整px和em、rem,但96%以上的中国网友使用IE浏览器(或内核)。EMem是一个相对长度单位。相对于当前对象中文本的字体大小。如果内联文本的当前字体大小没有手动设置,则它是相对于浏览器的默认字体大小。EM特点em的值不固定;em继承父元素的字体大小。注意:任何浏览器的默认字体高度都是16px。所有未经调整的浏览器都符合:1em=16px。那么12px=0.75em,10px=0.625em。为了简化字体大小转换,需要在css中的body选择器中声明Font-size=62.5%,使得em值16px*62.5%=10px,所以12px=1.2em,10px=1em,即就是说你只要把你原来的px值除以10,然后把em换成单位就可以了。所以在写CSS的时候需要注意:在body选择器中声明Font-size=62.5%;把你原来的px值除以10,然后换成em为单位,重新计算那些放大字体的em值。避免重复声明字体大小。即避免了1.2*1.2=1.44的现象。比如你在#content中声明了1.2em的字号,那么在声明p的字号时,只能是1em,不能是1.2em,因为这个em不是另一个em,它继承了字高#content的变成了1em=12px。REMrem是CSS3加入的相对单位(rootem,rootem)。当使用rem为元素设置字体大小时,它仍然是一个相对大小,但相对大小只是HTML根元素。这个单位可以说是结合了相对大小和绝对大小的优点。通过它,只需修改根元素就可以按比例调整所有字号,避免字号逐层复合的连锁反应。目前,除IE8及更早版本外,所有浏览器均支持rem。对于不支持的浏览器,解决办法也很简单,就是多写一个绝对单元语句。这些浏览器忽略使用rem设置的字体大小。下面是一个例子:p{font-size:14px;font-size:.875rem;}计算项目中rem的值,需要查看根元素设置的font-size值。根据这个值,很容易计算出需要的rem,也就是px像素。可以使用getComputedStyle()获取当前窗口的font-size//语法:letstyle=window.getComputedStyle(element,[pseudoElt]);//element//用于GetComputedStyleElement//pseudoEltOptional//指定要匹配的一串伪元素,对于普通元素必须省略示例:letelem1=document.getElementById("elemId");letstyle=window.getComputedStyle(elem1,null);//相当于//letstyle=document.defaultView.getComputedStyle(elem1,null);在低版本的ie中,使用currentStyle获取obj.currentStyle.xxx:getComputedStyle(obj,null).xxx;
