CSS 单位:px、em、rem三者的区别

说明

px、em、rem都是计量单位,都能表示尺寸,但是有所不同,其各有各的优缺点

px

px像素(Pixel),像素px是相对于显示器屏幕分辨率而言的
px作为单位是固定不变的,不能适应浏览器缩放时产生的变化,因此一般不用于响应式网站。

em

em 是相对长度单位,相对父元素的字体大小

缺点:可以避免字体大小逐层复合的连锁反应

例子

css:

<style>
    div {
        font-size: 40px;
        width: 7em; /* 40px * 7em = 280px */
        height: 7em;
        border: solid 1px black;
    }
    p {
        font-size: 0.5em; /* 40px * 0.5em = 20px */
        width: 7.5em; /* 20px * 7.5 = 150px */
        height: 150px;
        border: solid 1px blue ;
        color: blue;
    }
    span {
        font-size: 0.5em; /* 20px * 0.5em = 10px */
        width: 7em; /* 10px * 7em = 70px*/
        height: 70px;
        border: solid 1px red;
        display: block;
        color: red;
    }
</style>

html:

<div>
    父元素div
    <p>
       子元素p
        <span>孙元素span</span>
    </p>
</div>

rem

rem是css3中新增的相对单位,相对于html根元素的字体大小

例子

<style>
    html {
        font-size: 10px;
    }
    div {
        /* 根据html标签的字体大小算出来的 */
        font-size: 4rem; /* 10px * 4rem = 40px */
        width: 20rem;  /* 10px * 20rem = 200px */
        height: 200px;
        border: solid 2px black;
    }
    p {
        font-size: 2rem; /* 10px * 2rem = 20px */
        width: 10rem; /* 10px * 10rem = 100px */
        height: 100px;
        border: solid 1px blue;
        color:blue ;
    }
    span {
        font-size: 1.5rem;
        width: 7rem;
        height: 6rem;
        border: solid 2px red;
        display: block;
        color: red;
    }
</style>
<div>
    父元素div
    <p>
       子元素p
        <span>孙元素span</span>
    </p>
</div>

总结

  • px相对其他两个单位是固定不变的,不能适应浏览器缩放时产生的变化
  • em是根据父元素继承相应大小而不是固定的
  • rem是继承html根元素的大小

参考:
https://www.cnblogs.com/libo-web/p/15783997.html
https://blog.csdn.net/weixin_44019523/article/details/114155763


原文出处:/show_1IX5h7NQP2DI.html