前端移动端适配的常用方法总结

方法一、通过js来实现

(function (doc, win) {
            var docEl = doc.documentElement,
                    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
                    recalc = function () {
                        var clientWidth = docEl.clientWidth;
                        if (!clientWidth) return;
                        if(clientWidth>=640){
                            docEl.style.fontSize = '100px';
                        }else{
                            docEl.style.fontSize = 100 * (clientWidth / 640) + 'px';
                        }
                    };

            if (!doc.addEventListener) return;
            win.addEventListener(resizeEvt, recalc, false);
            doc.addEventListener('DOMContentLoaded', recalc, false);
        })(document, window);

例子中意思是640px的设计稿,1rem=100px;当设计给的设计稿是750px的,把对应的640改成750即可

还以设计稿为640为例,在不同设备下的HTML元素的font-size大小和实际像素如下

font-size的值:

iPhone5 : (320 / 640) * 100 = 50px

iPhone6 : (375 / 640) * 100 = 58.59375px

iPhone6+: (414 / 640) * 100 =64.6875px

设计稿上标注为30px的尺寸在不同设备上的实际像素:

iPhone5上的某字体: 50 * 0.3rem = 15px

iPhone6上的某字体:58.59375* 0.3rem = 17.578125px

iPhone6+上的某字体: 64.6875 * 0.3rem = 19.40625px

可以看出,不同的设备上的值是不同的,这也就是实现了适配

方法二、通过css来实现

在公共的css里面添加

html {
    font-size: calc(100vw / 6.4);
}

当设计稿为750时,

html {
    font-size: calc(100vw / 7.5);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值