js手机端根据屏幕大小设置rem大小

//根据屏幕大小设置根节点字体大小
//getFontSize(是否返回根节点fontSize大小)
//basic(基准值)
//maxScale(最大缩放比例)
/*
    最好结合postcss-pxtorem插件自动转换px为rem

    安装:
    npm i postcss-pxtorem -D

    修改根目录 .postcssrc.js 文件:
    注意:rootValue和basic(基准值)保持一致
    "postcss-pxtorem": {
        "rootValue": 100,
        "minPixelValue": 2, //如px小于这个值,就不会转换了
        "propList": ["*"], // 如需开启pxToRem模式,请在数组中加入"*"
        "selectorBlackList": [] //如需把css选择器加入黑名单,请在数组中加入对应的前缀,比如"mint-"
    }

    或者修改webpack.dev.conf.js和webpack.prod.conf.js
    test: /\.(css|scss|less)$/,
    use:[
        {
            options:{
                plugins:()=>[
                    require('postcss-pxtorem')({
                        "rootValue": 100,
                        "minPixelValue": 2, //如px小于这个值,就不会转换了
                        "propList": ["*"], // 如需开启pxToRem模式,请在数组中加入"*"
                        "selectorBlackList": [] //如需把css选择器加入黑名单,请在数组中加入对应的前缀,比如"mint-"
                    }),
                ],
            },
        },
        {
            loader: require.resolve('sass-loader'),
        },
    ],
*/
function htmlFontSize(getFontSize, basic, maxScale) {
    var getFontSize = getFontSize || false;
    var basic = basic || 100;
    var maxScale = maxScale || 1.5;

    function change() {
        var oHtml = document.documentElement;
        var iWidth = oHtml.clientWidth;
        var iScale = Math.min(iWidth / 375, maxScale);
        var fontSize = basic * iScale;

        if (!getFontSize) {
            oHtml.style.fontSize = fontSize + 'px';
        } else {
            return fontSize;
        }
    }

    if (!getFontSize) {
        change();
        window.onresize = change;
    } else {
        return change();
    }
}

执行函数htmlFontSize(),会根据当前屏幕大小自动设置根节点的字体大小。以375宽度为标准,最大是1.5倍缩放。如果不依赖插件,在375的手机屏幕下,写成.01rem是1px,写成.1rem是10px,以此类推。如果引入postcss-pxtorem,则按正常px的写法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值