关于px em rem vh vw那些事儿

本文介绍了移动端响应式布局中涉及的单位概念,包括px、em、rem、vh和vw,并详细解释了它们之间的区别及应用场景。同时,文章还提供了vw、px与rem之间换算的具体方法。

前言:在做移动端响应式布局的时候发现这个知识点还是比较薄弱,记录一下

前置知识

px

绝对单位,表示像素,CSS规范的定义,CSS中的px是一个相对长度,它相对的,是viewing device的分辨率。这个viewing device,通常就是电脑显示器。就好比呈现在我们显示器上的一个个小点,每个像素点都是大小等同的。

em

相对单位,em的大小并不是固定的,一般情况下会继承父元素文字大小,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体16px尺寸。

rem

rem是CSS3新增的一个相对单位,与em的区别在于元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。

vh&vw

都作为视口单位,vh代表的是view height,也就是显示器可视范围高度的百分比;vw表示的是view width,也就是显示器可是范围宽度的百分比, 1vw = 1% * 视口宽度 。也就是说,一个显示器视口就是 100vw

vw px rem之间的换算

以下面标准为例(受随着根元素字体大小、移动端屏幕大小影响,计算均是进行四舍五入的结果):

移动端屏幕为750px

那么: 100vw = 750px

所以1vw就等于:1vw =750px/100vw = 7.5px

注意现在1vw等于 7.5px,而我们的1rem16px (默认情况下 根元素字体大小为16px)

现在进行计算:1rem = 16px/7.5px = 2.133vw

相反:1vw = 7.5px/16px = 0.469rem

上面的计算公式计算同样也可以逆向思考下:

同理,移动端屏幕大小为750px

我们计算1px等于多少vw: 1px = 100/750 = 0.1333vw

显示1px=0.1333vw

现在进行计算:1rem= 0.1333 * 16 = 2.133vw

参考资料

分辨率相关:屏幕尺寸、px、pt - 物理像素和逻辑像素

好用的css 3新单位vh vw

移动端的vw px rem之间换算

个人博客已上线,欢迎来访~
传送门:夜雨炊烟

pxemremvwvh都是CSS中用于表示长度或尺寸的单位,它们之间既有区别又存在一定联系。 ### 与固定单位px的关系 px是固定像素单位,不随其他元素的尺寸变化而变化,是一个绝对单位,常用于设置边框、固定尺寸元素等不需要响应式变化的场景。emremvwvh是相对单位,它们的值会根据不同的参考基准进行计算。 ### em与其他单位的关系 em是相对单位,相对于当前元素或父元素的字体大小。例如,若父元素字体大小为16px,设置子元素`font-size: 1.5em`,则子元素字体大小为24px16px * 1.5)。与rem相比,em的计算是级联的,而rem总是相对于根元素;与vwvh相比,em基于字体大小,vwvh基于视口尺寸。em常用于文本相关、按钮内边距等场景[^2]。 ### rem与其他单位的关系 rem也是相对单位,相对于根元素(`<html>`)的字体大小。如果根元素字体大小为16px,设置元素`font-size: 1.5rem`,则该元素字体大小为24px16px * 1.5)。与px相比,rem可通过改变根元素字体大小实现整体布局的缩放;与em不同,rem的基准是根元素,避免了级联计算的复杂性;与vwvh相比,rem更侧重于基于根字体大小进行布局,而vwvh直接响应视口变化。rem常用于整体布局、间距等场景[^2]。 ### vwvh与其他单位的关系 vwvh是视口单位,vw表示视口宽度的1%,vh表示视口高度的1%。例如,视口宽度为1000px,`width: 50vw`表示元素宽度为500px1000px * 50%)。与px相比,vwvh直接响应视口变化;与emrem相比,vwvh不依赖于字体大小,而是基于视口尺寸。vwvh常用于全屏元素、大尺寸布局等场景[^2]。 ### 示例代码 ```css /* 设置根元素字体大小 */ html { font-size: 16px; } /* 使用px单位 */ .px-element { width: 200px; border: 1px solid black; } /* 使用em单位 */ .em-element { font-size: 1.5em; padding: 0.5em; } /* 使用rem单位 */ .rem-element { font-size: 1.2rem; margin: 1rem; } /* 使用vw单位 */ .vw-element { width: 50vw; } /* 使用vh单位 */ .vh-element { height: 30vh; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜雨炊烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值