CSS尺寸单位px、em、rem、vw、vh以及%的区别

1. px

px是像素单位。它是代表显示器上每一个显示的像素点,根据用户屏幕显示器的分辨率决定。

2. em

em为相对单位,相对于当前元素内文本的字体尺寸。如果当前元素没有指定字体尺寸,那么以浏览器默认的字体尺寸为准。

例如,当前元素设置了字体尺寸为24px,那么2em就代表48px

3. rem

rem为相对单位,相对于<HTML>元素文本的字体尺寸。如果<HTML>元素没有指定字体尺寸,那么以浏览器默认的字体尺寸为准。

例如,<HTML>元素设置了字体尺寸为24px,那么2rem就代表48px

4. vw和vh

vwvh是相对单位,相对于当前视口

例如,10vw代表当前视口宽度10%20vh代表当前视口高度20%

5. %

%是相对单位,相对于父元素的相关尺寸。

例如,父元素设置了height: 100px,那么它的子元素height: 50%就代表50px

### 移动端开发中的长度单位及其区别 #### 一、基本概念 在移动端开发中,不同的长度单位具有各自的特点和适用场景。以下是 `rem`、`em`、`px`、`vh`、`vw` 和 `%` 的定义: - **Rem**: 基准点为根元素 `<html>` 的字体大小,始终相对于文档的根元素计算尺寸[^3]。 - **Em**: 相对于其父节点的字体大小来计算尺寸。如果未指定,则基于浏览器默认字体大小 (通常是 16px)[^4]。 - **Px**: 是一种绝对长度单位,在屏幕上的表现固定不变,不随其他因素变化而改变[^1]。 - **Vh/Vw**: 分别表示视口高度和宽度的百分之一。例如,`1vh` 表示视口高度的 1%,`1vw` 则代表视口宽度的 1%。 - **Percent (%)**: 百分比是一种相对单位,通常用于相对于容器的宽高或其他属性的比例设定。 --- #### 二、具体差异分析 ##### 1. Rem vs Em 两者均为相对单位,但它们的主要区别在于参照物的不同: - `em`: 参照的是最近父级元素的字体大小,容易受到嵌套层次的影响,可能导致复杂布局下的不可预测性[^2]。 - `rem`: 总是依据 HTML 文档根元素 (`<html>`) 的字体大小,因此更加稳定且易于维护。 ##### 2. Px 对比 Relative Units 像素是一个固定的物理单位,无论设备如何它都不会发生变化;然而,响应式设计提倡使用灵活可变的单位以适应多种分辨率需求。相比而言,`rem`, `em`, `vh/vw` 能够更好地满足跨屏适配的要求。 ##### 3. Vh & Vw 特殊用途 这些单位特别适合创建全屏覆盖效果或者动态调整组件大小的应用场合。比如实现图片轮播器的高度自适应等功能时非常有用。 ##### 4. Percent (%) 主要用于子元素相对于父元素某些维度比例关系的确立上。当涉及到复杂的网格系统构建或是流体布局规划的时候尤为常见。 --- #### 三、最佳实践建议 为了提高用户体验并简化样式管理流程,在实际项目操作过程中可以遵循如下原则: - 尽量采用 `rem` 来代替传统的 `px` 定义文字及其他UI控件的基础尺度,因为前者能更方便地通过修改全局变量统一控制整个网站风格的一致性和缩放行为。 - 如果需要局部微调某部分区域内的子项间距或边距等细节参数,可以选择利用 `em` 单位完成相应处理工作,因为它会自动跟随上级设定做出同步变动从而减少额外配置负担。 - 当遇到涉及屏幕整体范围的操作任务如背景图填充、弹窗定位等情况之下优先考虑运用 `vh`/`vw` 类型指令达成目标效果。 - 关于百分比率方面的应用则多见于弹性盒子模型(Flexbox)以及栅格化框架结构之中用来分配空间份额等问题解决之上。 --- ```css /* 示例代码 */ :root { --base-font-size: 16px; } body { font-size: var(--base-font-size); /* 设置基础字号 */ } .container { width: 80%; /* 使用百分比设置宽度 */ padding: 2rem; /* 使用 rem 设定内边距 */ } .item { margin-bottom: 1em; /* 使用 em 添加底部外边距 */ height: 50vh; /* 让元素占据一半视口高度 */ } ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值