有你在真好 的个人博客
用rem使网页内容随屏幕宽度等比缩放
阅读:2262 添加日期:2021/3/27 23:26:33 原文链接:https://www.toutiao.com/item/6406949396478427649/

每当给移动端写网页的时候就会出现要兼容各种屏幕大小的情况。

了解的rem之后,觉得挺不错的,决定尝试一下。

原理提一下:1rem的长度等于 html的font-size大小,默认浏览器的html的font-size是16px,所以

正常情况下1rem = 16px(chrome默认字体大小下限是12px);

要想让网页内容随屏幕大小而等比放大和缩小,首先我得找个基准值。我决定在屏幕宽度为320px,html的font-size等于10px为一个基准值。此时,1rem=10px;

随着屏幕的宽度不断改变,只要html的font-size大小跟着改变就行了。

这里有个等式:

基准html的font-size大小(10)/基准的屏幕宽度(320) = 实际html的font-size大小/实际的屏幕宽度

有了这个等式就好办了。

当页面载入时,马上获取实际的屏幕宽度 ,就可以根据上面的等式计算出实际html的font-size大小,随即页面中使用rem单位的内容实际大小,也跟着变化了。我写了一个函数:

var setFontSize = function(){

var width =
document.documentElement.clientWidth;//获取页面可见宽度

if(width>320){

var w = width/32

var html = document.getElementsByTagName('html')[0];

html.style.fontSize = w+'px';

}else{

//alert("此屏幕大小不支持")

}

}

当页面载入时,使用此方法:

window.onload = function(){

setFontSize();

}

当屏幕放大和缩小时,也可以使用这个方法:

window.onresize = function(){

setFontSize();

}

如此便可实现网页内容随屏幕宽度等比缩放。

下面是这个demo的代码:

用rem使网页内容随屏幕宽度等比缩放

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号