一文搞懂px,em,rem...

147 阅读2分钟

Css中常用单位px,rem,em,vw,vh区别解析

px

px就是pixel像素的缩写,相对长度单位,网页设计常用的基本单位。像素px是相对于显示器屏幕分辨率而言的。

em

  • 子元素字体大小的em是相对于父元素字体大小
  • 该元素的width/height/padding/margin用em为单位的话是相对于该元素内的字体大小设置的 注:如果当前父元素的字体尺寸未设置,则相对于浏览器的默认字体(16px)设置的。 所以默认情况下,1em = 16px。

如何高效使用em呢

  • body标签中声明font-size:62.5%。即相当于1em = 16px * 62.5% = 10px
  • 之后就可以把em当做px使用。当然此时,1em = 10px
  • 如果在父容器里说明了font-size:20px,那么在子容器里的1em就等于20px

rem

rem是CSS3中新增的一个相对单位。rem顾名思义"root em",其参考的是页面根元素html的字体大小(font-size)

     html { font-size: 10px; }
     .box { 
            width: 2rem; /* 20px */
            height: 2rem; /* 20px */
          }

vw 和 vh

  • vw,视窗宽度,1vw=视窗宽度的1%
  • vh,视窗高度,1vh=视窗高度的1%
  • 如果浏览器的高是900px,1vh求得的值为9px。同理,如果显示窗口宽度为750px,1vw求得的值为7.5px。

vmin 和 vmax

  • vmin和vmax是相对于视口的高度和宽度两者之间的最小值或最大值。
  • 浏览器 height = 1100px、width = 700px,那么1vmin = 7px,1vmax = 11px
  • 浏览器 height = 800px、width = 1200px,那么1vmin = 8px,1vmax = 12px
  • vmin=(宽度/高度)最小(宽度/高度)最小 / 100
  • vmax=(宽度/高度)最大(宽度/高度)最大 / 100

rem和em总结分析

    <style> 
      html{ font-size: 10px; } 
      body
       { 
         font-size: 1.2rem; /* 1.2rem = 12px */
         padding: 0.7rem; /* 0.7rem = 7px */ 
       } 
      div
       { 
         padding: 1em; /* 1em = 12px */ 
       } 
      span
       { 
         font-size:1rem; /* 1rem = 10px */ 
         padding: 0.5em; /* 0.5em = 6px */ 
       }  
    </style>
    
    <html>
      <body>
        <div>
          <span></span>
        </div> 
      </body> 
    </html>

从我们上面写的代码块可以看出em 会层层继承父元素的字体大小,很容易造成字体和盒子大小的混乱。所以以后用rem不但不会造成尺寸混乱还可以适配各种移动设备,我强烈推荐使用rem。

参考链接: juejin.cn/post/684490… juejin.cn/post/684490…