Js自动转px为rem适配不同屏幕

本文深入探讨了REM单位在响应式网页设计中的应用,详细解释了其与EM单位的区别,以及如何通过设置HTML根元素的字体大小实现跨设备适配。文章提供了具体的代码示例,包括如何动态调整字体大小以适应不同屏幕尺寸。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当然可以,下面是对你提供的文章内容的结构化整理版,方便理解和查阅:


rem 与常用 CSS 单位说明 & 自定义使用方法

1. 常用单位简介

单位含义特点
px像素虚拟单位,与显示设备有关,需考虑 DPI(如:Windows 默认 96dpi,Mac 默认 72dpi)
em相对单位相对于当前元素的字体大小,可嵌套,会叠加,常用于局部缩放
pt物理单位,1pt = 1/72 英寸,常用于打印排版
rem根 em相对于 html 根元素的 font-size不会嵌套叠加,推荐用于响应式布局

2. rem 使用步骤

第一步:设置 viewport

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">

确保页面可正确响应不同设备宽度。


第二步:设置动态 rem 基准

方法一:简单自适应(设计稿为 640px 宽)
<script>
  document.documentElement.style.fontSize = document.documentElement.clientWidth / 640 * 100 + 'px';
</script>
方法二:封装成函数并监听窗口变化
<script>
  function setRemBase() {
    const html = document.documentElement;
    html.style.fontSize = (html.clientWidth / 640) * 100 + 'px';
  }

  window.addEventListener('resize', setRemBase);
  window.addEventListener('DOMContentLoaded', setRemBase);
</script>

3. 备注说明

为什么要设置 htmlfont-size

因为 rem 是基于 html 的字体大小来计算的,一旦设置好根字体,就可以通过 rem 自动进行全站等比缩放。


为什么要乘以 100?

假设设计稿宽度为 640px:

  • 手机设备宽度是 320px,则比例是:320 / 640 = 0.5
  • 若 html 的 font-size = 0.5px,会低于浏览器的最小字体限制(一般为 12px),可能出现显示异常
  • 乘以 100 后,html 的 font-size = 50px,更符合现实开发需要
  • 写样式时,你写的 50px 实际写作 0.5rem

总结:

意思就是,在开发的时候你可以无视设计图和设备的偏差,设计图上是50px,你代码里样式可以直接写50px,效果不受影响,即便是最小的1px也不会出现样式异常,因为1px实际运算以后是50px


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清风细雨_林木木

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

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

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

打赏作者

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

抵扣说明:

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

余额充值