让rem脱离繁琐的css视口检测

rem是一个比较常用的页面兼容方案,依赖于 htmlfontsize来决定 rempx的转换比例, 传统的方式是通过css视口检测来再不同宽度的屏幕下调整fontsize,但这过于繁琐,而且 fontsize之间的转换并没有过渡(虽然这在移动端看来没有什么影响)

下面是一个简单的转换公式
假设我需要把整个页面的宽度转化为 750rem,推理如下:

页面宽度 = 750rem
页面宽度/750 = 1rem
而一个 rem 代表的大小就是 htmlfontsize的大小

所以 fontsize = 页面宽度/750 即可

<script>
    function setHtmlFontSize(){
        const html = document.getElementsByTagName("html")[0]
        html.style.fontSize = html.offsetWidth/750 + "px"
    }
    setHtmlFontSize()
    window.addEventListener("resize",setHtmlFontSize)
</script>

这边建议吧页面转化为n个rem宽度 n为设计图是宽度;
例如: 设计图为1200px,那么就转为为1200rem,这样就不需要做繁琐的 px和rem之间的转化工作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值