js/css px , em , rem , vh , vw 的区别

本文详细介绍了CSS中常用的几种单位,包括绝对单位px、相对单位em和rem、以及视口单位vw/vh。解释了它们的区别与应用场景,特别是rem单位在移动端布局中的作用。

1.px是绝对单位 1px 就是1像素

2.em:相对单位,

结果:p标签的宽高为120px

 

 

3.rem 相对单位

基准是相对与html 元素的大小

是相对于根元素的的font-size的倍数一个css单位,

也就是前端常说的rem移动端适配,

 样式:

 通过媒体查询,通过视口不同的宽度,来适配元素的大小

 

4.vw/vh是视口的相对单位

相对于视口的宽高。视口被均分为100单位的vh

vw:1vw等于视口宽度的1%。

vh:1vh等于视口高度的1%。

 /*  width: 50vh相当于视口高度的50% */
    div {
       width: 50vh;
       height: 100px;
    }

### empxremvhvw前端开发中的使用场景及区别前端开发中,CSS 单位的选择直接影响页面布局的灵活性和响应式设计的效果。以下是 `em`、`px`、`rem`、`vh` 和 `vw` 的详细说明及其使用场景: #### 1. **PX(像素)** - **特点**:绝对单位,表示屏幕上的一个物理像素点。 - **是否响应式**:否。 - **典型应用场景**: - 固定尺寸的元素,如边框宽度、图标大小等[^1]。 - 需要精确控制尺寸时,例如按钮的固定高度或宽度[^4]。 - **优点**:简单直观,适用于不需要随视口变化的场景。 - **缺点**:缺乏灵活性,不适应不同设备屏幕尺寸。 ```css .button { width: 100px; /* 固定宽度 */ height: 30px; /* 固定高度 */ } ``` --- #### 2. **EM(相对单位)** - **特点**:相对于当前元素或父元素的字体大小(`font-size`)。 - **是否响应式**:是。 - **典型应用场景**: - 文本相关的间距调整,如行高、外边距、内边距等[^3]。 - 按钮的内边距(padding),使其与字体大小成比例变化[^1]。 - **优点**:灵活适应父元素的字体大小,适合局部调整。 - **缺点**:继承性可能导致嵌套计算复杂化。 ```css .parent { font-size: 16px; } .child { margin: 1em; /* 相当于 16px */ } ``` --- #### 3. **REM(相对单位)** - **特点**:相对于根元素(`html`)的字体大小(`font-size`)。 - **是否响应式**:是。 - **典型应用场景**: - 响应式设计中,确保全局一致性,避免继承问题[^3]。 - 整体布局的宽度、高度、间距等。 - **优点**:独立于父元素,全局统一,易于维护。 - **缺点**:需要明确根元素的字体大小。 ```css html { font-size: 16px; } .container { width: 20rem; /* 相当于 320px */ } ``` --- #### 4. **VW(视口宽度百分比)** - **特点**:基于视口宽度的百分比单位,1vw 等于视口宽度的 1%。 - **是否响应式**:是。 - **典型应用场景**: - 全屏布局,例如背景图片、全屏广告等[^2]。 - 动态字号调整,结合 `clamp()` 函数实现流体字体[^2]。 - **优点**:直接响应视口变化,适合大尺寸布局。 - **缺点**:小屏幕上可能显得过大,需配合其他单位限制范围。 ```css .hero-section { width: 100vw; /* 占满视口宽度 */ } .title { font-size: clamp(2rem, 4vw, 3rem); /* 动态字体大小 */ } ``` --- #### 5. **VH(视口高度百分比)** - **特点**:基于视口高度的百分比单位,1vh 等于视口高度的 1%。 - **是否响应式**:是。 - **典型应用场景**: - 全屏布局,例如登录页、首页英雄区域等。 - 根据视口高度动态调整元素尺寸。 - **优点**:直接响应视口变化,适合垂直方向的布局。 - **缺点**:移动端地址栏可能影响实际高度,需额外处理[^2]。 ```css .full-screen { height: 100vh; /* 占满视口高度 */ } ``` --- ### 总结与实践建议 - **PX**:适用于固定尺寸的场景,但缺乏灵活性。 - **EM**:适用于局部调整,但需要注意嵌套计算。 - **REM**:推荐用于全局布局,确保一致性和可维护性。 - **VW/VH**:适用于全屏布局或需要直接响应视口变化的场景,但需注意边界条件。 通过合理组合这些单位,可以实现更灵活、更适应多设备的前端设计。例如,结合 `Sass` 函数自动转换 `px` 到 `rem`,或使用 `clamp()` 实现动态字体调整。 ```scss @function rem($px) { @return ($px / 16) * 1rem; } .box { width: rem(320); /* 自动转换为 20rem */ } ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值