天天看点

Css单位px,rem,em,vw,vh的区别

  • -px
    • 是pixel像素的缩写,相对长度单位,网页设计常用单位。
    • px是相对于显示器屏幕分辨率而言的
  • - em
    • em是相对长度单位。相对于当前对象内文本的字体尺寸(参考物是父元素的font-size)
    • 如当前父元素的字体尺寸未设置,则相对于浏览器的默认字体尺寸
      • em的值并不是固定的;
      • em会继承父级元素的字体大小
  • - rem
    • rem是CSS3新增的一个相对单位,rem是相对于HTML根元素的字体大小(font-size)来计算的长度单位
    • 没有设置html的字体大小,就会以浏览器默认字体大小,一般是16px
html{font-size: 62.5%}  /* 10 ÷ 16 × 100% = 62.5% */

body{font-size: 1.4rem;} /* 1.4 × 10px = 14px */

/*在根元素中定义了一个基本字体大小为62.5%
也就是10px。设置这个值主要方便计算,
如果没有设置,将是以“16px”为基准 
*/
           
  • 优点是,只需要设置根目录的大小就可以把整个页面的成比例的调好

rem兼容性:除了IE8及更早版本外,所有浏览器均已支持rem

  • em与rem的区别:

rem是相对于根元素(html)的字体大小,而em是相对于其父元素的字体大小

两者使用规则:

如果这个属性根据它的font-size进行测量,则使用em

其他的一切事物属性均使用rem

这里提供了一个px、em、rem单位的转换工具:

http://pxtoem.com/

vw、vh

  • vw、vh、vmax、vmin这四个单位都是基于视口

vw是相对视口(viewport)的宽度而定的,长度等于视口宽度的1/100

假如浏览器的宽度为200px,那么1vw就等于2px(200px/100)

vh是相对视口(viewport)的高度而定的,长度等于视口高度的1/100

假如浏览器的高度为500px,那么1vh就等于5px(500px/100)

vmin和vmax是相对于视口的高度和宽度两者之间的最小值或最大值