常见的CSS布局单位与其区别及使用场景

538 阅读2分钟
  1. 像素(px):是页面布局的基础,一个像素表示终端(电脑、手机、平板等)屏幕所能显示的最小的区域,像素分为两种类型:CSS像素和物理像素:

    • CSS像素:为web开发者提供,在CSS中使用的一个抽象单位;
    • 物理像素:只与设备的硬件密度有关,任何设备的物理像素都是固定的。
  2. 百分比(%):当浏览器的宽度或者高度发生变化时,通过百分比单位可以使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果。一般认为子元素的百分比相对于直接父元素。

  3. em和rem:对于px更具灵活性,它们都是相对长度单位,它们之间的区别:em相对于自身或者父元素字体,rem相对于根元素(html字体大小:document.documentElement.style.fontSize)。

    • em: 文本相对长度单位。相对于当前对象内文本的字体尺寸。如果当前行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸(默认16px)。(相对父元素的字体大小倍数)。
    • rem: rem是CSS3新增的一个相对单位,相对于根元素(html元素)的font-size的倍数。作用:利用rem可以实现简单的响应式布局,可以利用html元素中字体的大小与屏幕间的比值来设置font-size的值,以此实现当屏幕分辨率变化时让元素也随之变化。
  4. vw/vh是与视口有关的单位,vw表示相对于视图窗口的宽度,vh表示相对于视图窗口高度,除了vw和vh外,还有vmin和vmax两个相关的单位。

    • vw:相对于视窗的宽度,1vw = 1/100视口宽度;

    • vh:相对于视窗的高度,1vh = 1/100视口高度;

    • vmin:vw和vh中的较小值;

    • vmax:vw和vh中的较大值。

px、em、rem的区别及使用场景

区别: 是否具备灵活性

  • px 是固定的像素,一旦设置了就无法因为适应页面大小而改变。
  • em 和 rem 相对于 px 更具有灵活性,他们是相对长度单位,其长度不是固定的,更适用于响应式布局。
    • em 是以自身的 font-size 为参考的,当 em 没有设置自身的 font-size ,则会以父元素的 font-size 为标准;
    • rem 是相对于根元素,这样就意味着,只需要在根元素确定一个参考值。

适用场景:

  • 对于只需要适配少部分移动设备,且分辨率对页面影响不大的,使用px即可 。
  • 对于需要适配各种移动设备,使用rem,例如需要适配iPhone和iPad等分辨率差别比较挺大的设备。