rem布局学习
rem是移动端布局,自适应屏幕 常用的方法。
原理
1rem = 不同设备下fontsize的初始值
于是用rem做单位不同屏幕的元素大小就不一样,可以达到适配。
在vue/react项目public/index.html文件的头部添加以下代码
<script>
fnResize();
window.onresize = function() {
fnResize();
};
function fnResize() {
var deviceWidth =
document.documentElement.clientWidth || window.innerWidth;
if (deviceWidth >= 750) {
deviceWidth = 750;
}
if (deviceWidth <= 320) {
deviceWidth = 320;
}
document.documentElement.style.fontSize = deviceWidth / 7.5 + "px";
}
</script>
window.onresize:屏幕大小发生变化时触发。
window.innerwidth: 返回窗口的文档显示区的宽度
element.clientWidth: 返回元素的可见宽度。
这段代码就是根据不同屏幕的宽度,设置不同的初始fontsize。
这样750px的设计图,1rem=100px
这样375px的设计图,1rem=50px
这样就能使用rem来替代px做单位。
在750px的设备中
比如36px就相当于0.36rem
但是在375px的设备中
0.36rem就相当于18px
这样就能适配不同的设备了