根据浏览器分辨率进行自适应单位大小(vue)

92 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

需求:动态改变html的font-size,px随浏览器大小改变,话不多说上代码。

App.vue中:

resizeFun() {
            let docEle = document.documentElement,
                resizeEvt =
                    'orientationchange' in window ? 'orientationchange' : 'resize',
                resizeFun = () => {
                    let clientWidth = docEle.clientWidth;
                    if (!clientWidth) return;
                    docEle.style.fontSize = 100 * (clientWidth / 1920) + 'px';
                };
            if (!document.addEventListener) return;
            window.addEventListener(resizeEvt, resizeFun, false);
            window.addEventListener('DOMContentLoaded', resizeFun, false);
            resizeFun();
        },
然后在生命周期中调用this.resizeFun()即可.

总结:

  • 1.如果想根据分辨率使用自适应,用rem作为单位。 如:1920分辨率20px,改成0.2rem。计算公式1rem=100px
  • 2.如果有些地方不需要自适应,还是继续用px作为单位