其他分享
首页 > 其他分享> > css中单位px,em, rem的区别

css中单位px,em, rem的区别

作者:互联网

1.px是相对长度单位,它是相对于显示器屏幕分辨率而言的 优缺点:比较稳定和精确,但在浏览器中放大或缩放浏览页面时会出现页面混乱的情况   2.em是相对长度单位,1em等于当前元素的字体大小,除非你在设置font-size   3.rem是CSS3新增的一个相对单位,rem是相对单位,是相对HTML根元素,当在根元素中使用rem设置font-size时,此时的1rem等于浏览器默认字体大小,大多数浏览器默认大小为16px   下面重点讲讲em,因为这个单位在使用上有一些坑点,大多数资料说1em是等于父元素的字体大小,经测试,这种说法不准确   如下所示,经浏览器计算,padding-top并不是 2 * 24 = 48px,而是相对于其本身元素而言的,也就是2 * 36 = 72px
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .wrapper {
      font-size: 24px;
    }
    .text {
      font-size: 36px;
      padding-top: 2em;
    }
  </style>
</head>
<body>
  <div class="wrapper">
    <div class="text">哈哈哈哈</div>
  </div>
</body>
</html>

 

 

为什么有人认为em是相对于父元素字体的大小呢,这是因为设置当前元素的font-size时采用em单位才会出现的特例。如下所示,因为1em是相对当前元素的font-size的大小,而我们现在要设置的就是font-size,因此此时font-sizej就是默认值inherit,也就是从父元素继承过来的字体大小,所以此时1em看起来就像是相对于父元素字体大小。除此之外,1em都是相当于当前元素font-size的字体大小

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .wrapper {
      font-size: 24px;
    }
    .text {
      font-size: 2em;   //经计算为48px
    }
  </style>
</head>
<body>
  <div class="wrapper">
    <div class="text">哈哈哈哈</div>
  </div>
</body>
</html>

 

  如果在根元素上使用em设置font-size会怎么样?因为根元素已经没有父元素了。在根元素上的默认值为initial,而大多数浏览器的默认字体大小为16px,因此设置根元素上font-size时使用的1em = 16px.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    html {
      font-size: 2em;
    }
  </style>
</head>
<body>
  <div class="wrapper">
    <div class="text">哈哈哈哈</div>
  </div>
</body>
</html>

 

总结 除了设置font-size时1em 等于父元素font-size的大小,其他情况1em都是等于当前元素的font-size的大小

标签:em,字体大小,px,元素,1em,rem,font,size
来源: https://www.cnblogs.com/wanqiblog/p/14773574.html