px在平时的工作中,我发现大部分时间都是使用px作为CSS字体单位。不仅如此,其实公司所有的前端项目都使用px作为CSS字体单位。我们知道px(像素)作为CSS的相对长度单位,是相对于显示器的分辨率而言的。它的特点是稳定、准确、浏览器兼容性好,但相应的,在网页中使用px作为字体单位也存在问题。例如,当用户试图调整浏览器的默认字体大小时,因为px是固定大小的,所以无论你怎么调整对应页面的字体大小,它都不会改变。em为了解决上面提到的以px为字体单位的类似问题,引入了一个新的CSS字体单位em。作为字体单位,em也是相对长度单位。它与当前对象中文本的字体大小有关。如果当前对象中文本的字体大小没有设置,将使用浏览器的默认字体大小。任何浏览器的默认字体大小都是16px,所以当浏览器字体大小保持默认时:1em=16px,则1px=1/16=0.0625em,10px=0.625em,同理12px=0.0625x12=0.75em,14px=0.0625x14=0.875em。但是如果每次都要计算px到em的值,会大大降低开发效率。为了简化px到em的值转换,可以在CSS中声明body的字体大小为62.5%,即body{font-size:62.5%},这样1em=16px*62.5%=10px,那么对应的12px=1.2em,14px=1.4em,这样转换就简单多了。但是还有一个像上面这样的问题,就是em作为字体单位会继承父元素的字体大小。上面的计算假设所有元素的字号都是以body的字号为继承基准,但实际情况往往不是这样的。举个例子,下面的DOM结构:-size:1.2em">导航菜单1
