# 实例的 Demo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>download</title>
</head>
<style>
div {
        font-size: 40px;
        width: 7.5em; /* 300px */
        height: 7.5em;
        border: solid 2px black;
    }
 p {
        font-size: 0.5em; /* 20px */
        width: 7.5em; /* 150px */
        height: 7.5em;
        border: solid 2px blue ;
        color: blue;
    }span {
        font-size: 0.5em;
        width: 7em;
        height: 6em;
        border: solid 1px red;
        display: block;
        color: red;
    }
</style>
<body>
   <div>
    父元素div
    <p>
       子元素p
        <span>孙元素span</span>
    </p>
</div>
</body>
</html>

em 相对于父元素,rem 相对于根元素。

# 1.em

(一)子元素字体大小的 em 是相对于父元素字体大小

(二)元素的 width/height/padding/margin 用 em 的话是相对于该元素的 font-size


# 2.rem

rem 是全部的长度都相对于根元素,根元素是谁?<html> 元素。通常做法是给 html 元素设置一个字体大小,然后其他元素的长度单位就为 rem。

html {
        font-size: 10px;
    }
    div {
        font-size: 4rem; /* 40px */
        width: 20rem;  /* 200px */
        height: 20rem;
        border: solid 2px black;
    }
    p {
        font-size: 2rem; /* 20px */
        width: 10rem;
        height: 10rem;
        border: solid 1px blue;
        color:blue ;
    }
    span {
        font-size: 1.5rem;
        width: 7rem;
        height: 6rem;
        border: solid 2px red;
        display: block;
        color: red;
    }

# 3. 总结

一、px 是固定的像素,一旦设置了就无法因为适应页面大小而改变。

二、em 和 rem 相对于 px 更具有灵活性,他们是相对长度单位,意思是长度不是定死了的,更适用于响应式布局。

三、em 是相对于其父元素来设置字体大小的,一般都是以 <body> 的 “font-size” 为基准。这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而 Rem 是相对于根元素 <html>,这样就意味着,我们只需要在根元素确定一个参考值。

更新于

请我喝[茶]~( ̄▽ ̄)~*

Jean 微信支付

微信支付

Jean 支付宝

支付宝

Jean 贝宝

贝宝