移动端适配之动态 rem 方案

代码示例展示了如何通过JavaScript动态设置HTML文档的字体大小,基于屏幕宽度与设计图尺寸的比例,确保在不同设备上1rem对应的实际像素不同,从而实现内容的自适应布局。这种方法保证了文字在不同屏幕尺寸下都能保持合适的大小,避免在小屏设备上文字过小的问题。

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

代码

就是设置浏览器字体,从而实现根据屏幕动态计算大小

<script>
	const WIDTH = 750;	// 设计图尺寸
	const setView = () => {
		document.documentElement.style.fontSize = screen.width / WIDTH + "px";
	};
    window.onorientationchange = setView;
    setView();
</script>

在使用时,1rem 即 1px,然后在不同窗口尺寸下的内容也是自适应的。另外有一个好处是,文字大小不会随着屏幕变的非常小。

示例

iphone SE(小屏)
  • 这里我的比例是 1:10(即 1rem === 10px)
    在这里插入图片描述
    在计算样式时,宽高则是 165 * 110在这里插入图片描述
iphone 12 (中等屏幕)
  • 样式计算得到的宽高也会等比增大在这里插入图片描述
三星 S22U(大屏)
  • 将近 420宽度在这里插入图片描述
ipaid Air(超大屏)
  • 宽高分别为 360+ / 240+在这里插入图片描述

关于文字大小

这里因为是动态 rem,文字在小屏中不会出现绝对的按比例放大缩小的情况,可以从效果图中看出文字基本都是适配的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值