h5系统大字体兼容 css vw 转为 字体rem 解决方案

博客介绍了如何处理安卓H5页面中使用vw单位在系统设置超大字体时导致的布局问题。通过将vw单位替换为rem,并使用JavaScript动态调整根元素字体大小,确保在不同屏幕和系统字体设置下页面布局的稳定性。代码示例展示了具体的实现方法,包括监听窗口resize事件和计算vw与rem之间的转换比例。

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

 原本css是3.5vw

安卓h5不兼容 系统设置超大字体 会撑开DIV

添加如下代码

新写法 3.5rem

系统超大字体 1vw = 1rem 

<script type="text/javascript">
	(function (doc, win) {
		var fontSize_d = 16;//默认字体大小
		var fontSize =0;
		try {
			fontSize = parseInt(document.defaultView.getComputedStyle(document.documentElement,null)['fontSize']);
		} catch (error) {}
		
		if(!(fontSize>0))fontSize = fontSize_d;//字体大小读取失败
		var cz =  fontSize_d/fontSize;

		var docEl = document.documentElement,
			resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
			recalc = function () {
				var clientWidth = (parseInt((docEl.clientWidth /100)*cz*100) / 100 )+ 'px';
				docEl.style.fontSize = clientWidth;//100 * (clientWidth / 750) + 'px';
				// document.body.style.fontSize = clientWidth;
				console.log(clientWidth,fontSize,cz);
			};
			
		recalc();
		window.addEventListener(resizeEvt, recalc, false);
	})(document, window)
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值