DPR

1 Point的线在非Retina屏幕则是一个像素,在Retina屏幕上则可能是2个或者3个,取决于系统设备的DPR。

CSS单位

em: 在 font-size 中使用是相对于父元素的字体大小,在其他属性中使用是相对于自身的字体大小,如 width
1、浏览器的默认字体都是16px,那么1em=16px,以此类推计算12px=0.75em,10px=0.625em,2em=32px;
2、这样使用很复杂,很难很好的与px进行对应,也导致书写、使用、视觉的复杂(0.75em、0.625em全是小数点);
3、为了简化font-size的换算,我们在body中写入一下代码

  1. body {font-size: 62.5%; } /* 公式16px*62.5%=10px */

缺点:
1、em的值并不是固定的;
2、em会继承父级元素的字体大小(参考物是父元素的font-size;);
3、em中所有的字体都是相对于父元素的大小决定的;所以如果一个设置了font-size:1.2em的元素在另一个设置了font-size:1.2em的元素里,而这个元素又在另一个设置了font-size:1.2em的元素里,那么最后计算的结果是1.2X1.2X1.2=1.728em

<div class="big">
    我是大字体
   <div class="small">我是小字体</div>
</div>

<style>
     body {font-size: 62.5%; } /*  公式:16px*62.5%=10px  */ 
    .big {font-size: 1.2em}
    .small {font-size: 1.2em} /*small的字体大小为:1.2em*1.2em=1.44em*/
</style>

使用vw vh碰到的问题

把px转成vw单位, 在浏览器环境的时候,会导致字体变得很大,布局错乱变形,导致效果很差
使用rem + flexible.js 也会出现此问题
最终解决方案:
vw配合媒体查询 + rem实现方案 基本可以解决大部分问题
px rem vw究竟该怎么使用,移动端的布局方案

参考链接

vw相比rem,在实际开发中究竟有多大区别?
CSS3 的字体大小单位「rem」到底好在哪?
CSS的值与单位