export const resetPc = () => {
var wH = window.innerHeight; // 当前窗口的高度
var wW = window.innerWidth; // 当前窗口的宽度
var whdef = 100 / 1920; // 表示1920的设计图,使用100PX的默认值
if (wW > 1400) {
var rem = wW * whdef; // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
var html = document.documentElement;
html.style.fontSize = rem + "px"; //适用于PC网站
} else {
var rem = 1400 * whdef;
var html = document.documentElement;
html.style.fontSize = rem + "px";
}
}
- 将上面的代码在项目启动的时候进行初始加载;
- 这里主要设置的是html的根字体大小,需要进行body的字体大小的初始化,我一般设置
font-size:14px
,否则会导致页面的部分字体变大; - 这里的是页面的初次加载的时候进行引入初始,但不推荐
window.addEventListener("resize", function() {})
进行页面的动态监听,因为页面的窗口不像手机,可以随意的调整浏览器窗口的大小,这样会导致页面的不断重绘和重排,影响性能,所以我在上述代码中以1400宽度进行分界线,相应的body会有个对应的最小宽度,我设置的是1000px;
4.对应的代码加上去后,根字体的大小相对于1920的大小是100px;所以后面的px也要相应的用rem代替,我是通过对应的sass进行换算如下:
@function pcPx2rem($px) {
$rem: 100px;
@return ($px/$rem)+rem;
}
5.对应的手机端的适配和手机端类似,有webpack的可以直接用对应的插件进行转换这里就不过多的进行叙述。