常用的单位有哪些?以及px em rem区别

简介: 常用的单位有哪些?以及px em rem区别

1.px:固定的像素,一旦设置了就无法因为适应页面大小而改变,因此px通常被用来实现固定大小的布局效果

2.em:em相对于父元素

相对长度单位,表示相对于元素字体大小的倍数。

例如,如果一个元素的字体大小为16px,那么1em就等于16px。

另外,如果一个元素没有设置字体大小,那么em的值就会继承其父元素的字体大小。

因此,em通常被用来实现相对于字体大小的布局效果。

3.rem:rem相对于根元素

一、rem

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

<!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: 10px;
        }
        div {
            font-size: 4rem;  /* 40px */
            width: 20rem;     /* 200px */
            height: 20rem;
            color: black;
            background-color: darkcyan;
        }
        p {
            font-size: 2rem;  /* 20px */
            width: 10rem;
            height: 10rem;
            color: blue;
            background-color: purple;
            margin: 0;
        }
        span {
            font-size: 1.5rem;
            width: 7rem;
            height: 6rem;
            display: block;
            color: red;
            background-color: sandybrown;
        }
    </style>
</head>
<body>
    <div>
        父元素div
        <p>
            子元素p
            <span>孙元素span</span>
        </p>
    </div>
</body>
</html>

二、em

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

元素的width/height/padding/margin用em的话是相对于该元素的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>
        div {
            font-size: 40px;
            width: 7.5em;  /* 300px */
            height: 7.5em;
            background-color: gray;
        }
        p {
            font-size: 0.5em; /* 20px */
            width: 7.5em;     /* 150px */
            height: 7.5em;
            color: blue;
            background-color: tan;
            margin: 0;
        }
        span {
            font-size: 0.5em;
            width: 7em;
            height: 6em;
            background-color: #fff;
            display: block;
            color: red;
        }
    </style>
</head>
<body>
    <div>
        父元素div
        <p>
            子元素p
            <span>孙元素span</span>
        </p>
    </div>
</body>
</html>

应用场景:

1.像素(px):用于元素的边框或定位。

2.em/rem:用于做响应式页面,不过我更倾向于rem,因为em不同元素的参照物不一样(都是该元素父元素),所以在计算的时候不方便,相比之下rem就只有一个参照物(html元素),这样计算起来更清晰。

总结 :

1.rem 和 em 单位是由浏览器基于你的设计中的字体大小计算得到的像素值。

2、em 单位基于使用他们的元素的字体大小。

3、rem 单位基于 html 元素的字体大小。

4、em 单位可能受任何继承的父元素字体大小影响

5、rem 单位可以从浏览器字体设置中继承字体大小。

6、使用 em 单位应根据组件的字体大小而不是根元素的字体大小。

7、在不需要使用em单位,并且需要根据浏览器的字体大小设置缩放的情况下使用rem。

8、使用rem单位,除非你确定你需要 em 单位,包括对字体大小。

9、媒体查询中使用 rem 单位

10、不要在多列布局中使用 em 或 rem -改用 %。

11、不要使用 em 或 rem,如果缩放会不可避免地导致要打破布局元素。

注意点:

1.样式的reset中需先设置html字体的初始化大小为50px,这是为了防止js被禁用或者加载不到或者执行错误。

2.而做的兼容样式的reset中需先设置body字体的初始化大小为16px,这是为了让body内的字体大小不继承父级html元素的50px,而用系统默认的16px


相关文章
|
1月前
|
编解码 前端开发 UED
解密CSS单位:px、em、vh的区别与应用
解密CSS单位:px、em、vh的区别与应用
40 0
|
5月前
|
编解码 前端开发 小程序
CSS中rpx、px、em、rem、%、vh、vw各自都代表什么
CSS中rpx、px、em、rem、%、vh、vw各自都代表什么
46 0
|
8月前
|
前端开发
常用单位 px像素 %百分比 rem em vw vh pt磅值
常用单位 px像素 %百分比 rem em vw vh pt磅值
|
4月前
|
编解码
px,em,rem,vw,vh之间的区别
px,em,rem,vw,vh之间的区别
|
4月前
|
编解码 前端开发
CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别
CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别
|
6月前
|
编解码 前端开发
css中单位px、pt、em和rem的区别
css中单位px、pt、em和rem的区别
|
6月前
|
编解码
1rem、1em、1vh、1px各自代表的含义?
1rem、1em、1vh、1px各自代表的含义?
|
7月前
|
编解码 前端开发 JavaScript
面试官:说一下 px、em、rem、vw/vh?em和rem的区别?
面试官:说一下 px、em、rem、vw/vh?em和rem的区别?
35 0
|
7月前
|
Web App开发 编解码 前端开发
|
9月前
|
编解码 前端开发
说说em/px/rem/vh/vw区别?
说说em/px/rem/vh/vw区别?
75 0