web端浏览器适配方案总结

48 阅读1分钟

浏览器适配方案

zoom+scale方式

  • 需手动设置html下zoom;
  • 以设计稿1920*1080为例,核心代码:
let rate = 1920 / window.innerWidth; 
//页面devicePixelRatio(设备像素比例)变化后,计算页面body标签zoom修改其大小,来抵消devicePixelRatio带来的变化。

document.getElementsByTagName('body')[0].style.zoom = 1 / rate;

代码中可以直接写设计稿中的px尺寸,无需变更为rem;

手动更改html下font-size方式

  • 需要手动设置html下font-size尺寸;
  • 代码中凡是尺寸的地方需要用rem;
  • 可以借助插件cssrem插件,把设计稿中的px手动转为rem;
/**

*

* @param {*} pwidth 基准宽度

* @param {*} prem 基准字体

* @returns

*/

function getRem(pwidth, prem) {

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

var oWidth =

document.body.clientWidth || document.documentElement.clientWidth;

if (oWidth > 1920) {

oWidth = 1920;

html.style.fontSize = (oWidth / pwidth) * prem + "px";

return;

} else if (oWidth < 600) {

// 更换布局文件为"/ms1mb/index.html"

// if (location.href.indexOf(".mp4") > -1) {

// } else {

// location.href = "/ms1mb/index.html";

// return;

// }

}

html.style.fontSize = (oWidth / pwidth) * prem + "px";

}

  


//初始化

getRem(1920, 16);

//改变窗口大小时重新设置 rem,这里最好加上节流

window.onresize = function () {

getRem(1920, 16);

};

自动更改html下font-size方式

  • amfe-flexible 是配置可伸缩布局方案,主要是将 1rem 设为 viewWidth/10。
  • postcss-pxtorem是postcss的插件,用于将像素单元生成rem单位。

# VUE_vue 移动端完美适配方案 amfe-flexible + postcss-pxtorem

# Vue3+Vite项目postcss-pxtorem+amfe-flexible实现自适应

  • 特别说明的是,代码中方式尺寸的地方,需要使用设计稿中的px尺寸,不能更改为rem尺寸。
  • 在运行时会自动px转为rem预览。
  • 也适用于移动端的适配。