vue : rem自适应的应用

我们知道,rem是一个css单位,指的是HTML根节点的字体大小。

MDN:css单位

而我们在用rem布局的时候必然会遇到一个问题:我们需要根据用户的屏幕大小去计算rem。

以下是代码。(在VUE中使用)

...
    created() {
        
        // rem 适配
        (function(win) {
            var docEl = win.document.documentElement;
            function refreshRem() {
                var width = docEl.getBoundingClientRect().width;
                if (width >= 1920) {
                    // 最大宽度
                    width = 1920;
                }
                var rem = width / 19.2;
                if (rem > 100) {
                    rem = 100;
                }
                docEl.style.fontSize = rem + "px";
                if (width < 1366) {
                    docEl.style.fontSize = 70 + "px";
                }
            }
            win.addEventListener(
                "resize",
                function() {
                    refreshRem();
                },
                false
            );
            win.addEventListener(
                "pageshow",
                function(e) {
                    if (e.persisted) {
                        refreshRem();
                    }
                },
                false
            );
            refreshRem();
        })(window);
        
    },
...

以上。

猜你喜欢

转载自www.cnblogs.com/foxcharon/p/10410433.html