rem
是一个比较常用的页面兼容方案,依赖于 html
的 fontsize
来决定 rem
与px
的转换比例, 传统的方式是通过css视口检测来再不同宽度的屏幕下调整fontsize
,但这过于繁琐,而且 fontsize
之间的转换并没有过渡(虽然这在移动端看来没有什么影响)
下面是一个简单的转换公式
假设我需要把整个页面的宽度转化为 750rem,推理如下:
页面宽度 = 750rem
页面宽度/750 = 1rem
而一个 rem
代表的大小就是 html
的fontsize
的大小
所以 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之间的转化工作了。