合聚咖

合聚咖

rem,em,vh,px各自的用法

admin

在传统的项目开发中,我们主要使用像素(px)、百分比(%)、em作为单位。这些单位在大部分项目中都能提供良好的兼容性和适用性。

然而,随着CSS3的引入,浏览器对计量单位的支持得到了显著提升,新增了rem、vh、vw、vm等新单位。这些单位使得我们能够开发出更适应不同分辨率设备的响应式页面。

在CSS单位中,可以分为长度单位和绝对单位。主要讨论的单位有px、em、rem、vh、vw。

px是相对长度单位,表示像素,其大小与显示器分辨率紧密相关。虽然有人认为px是相对长度,原因在于移动端存在设备像素比,px的实际显示大小不固定。

em也是相对长度单位,其基准点为当前对象内文本的字体尺寸。若未人为设置文本字体尺寸,则默认为浏览器默认字体尺寸(1em=16px)。

rem是相对长度单位,相对于根元素的字体大小。为了简化font-size的转换,可以在body选择器中声明font-size=62.5%,使得1rem=10px。

vh和vw是视口高度和宽度的单位,而不是父元素的单位。这意味着它们能够适应不同设备的视口大小,从而实现响应式布局。

vmin和vmax则是视口高度和宽度的最小值或最大值的单位,用于更灵活地调整元素尺寸。

px、em、rem、vh、vw等单位各有特点,适合不同的布局需求。例如,px适合精确控制像素大小,em适用于基于字体大小的响应式文本调整,rem则更适合作为根元素的响应式基础。

在CSS中,我们通常使用px作为单位,但在PC浏览器中,1px相当于1个设备像素。然而,实际显示效果会受到设备像素、设备独立像素、设备像素比(dpr)和每英寸像素(ppi)等因素的影响。

设备像素(d)指的是物理像素,固定于设备上。设备独立像素是CSS中用来表示单位的抽象概念,它与设备像素相对,表示可以通过程序控制使用的虚拟像素。

dpr是设备像素比,表示设备独立像素与设备像素之间的转换关系。ppi表示每英寸物理像素的密度,ppi越高,屏幕分辨率越高。

在前端页面适配中,使用rem单位可以实现基于根元素字体大小的响应式布局。通过给页面根元素设置font-size=62.5%,可以方便地将px转换为rem。然而,在实际应用中需要注意浏览器默认字体大小的差异以及chrome的强制最小字体大小限制,以确保rem单位的准确换算。