屏幕适配

须知 rem 物理像素和逻辑像素的区别和联系

在还原设计图时,使用media+rem进行适配,优点是简单粗暴。只需要考虑屏幕宽度即可,列出占有率高的屏幕尺寸就可以满足一般需求,性价比较高。但是这种方式不会关注屏幕的dpr,对于想要进行细化的问题就需要将所有情况列出来,显得不是和人性化。后来想到可以利用js加载时动态改变页面的font-size大小,利用屏幕的dpr进行更加灵活的适配:

function adapterRem() {

    var dpr, rem, scale;

    var docEl = document.documentElement;

    var fontEl = document.createElement("style");

    var metaEl = document.querySelector('meta[name=viewport]');

    dpr = window.devicePixelRatio || 1;

    rem = docEl.clientWidth * dpr / 75;

    scale = 1 / dpr;

    metaEl.setAttribute('content', 'width=' + docEl.clientWidth + ',initial-scale=' + scale + ',maximum-scale=' + scale + ', minimum-scale=' + scale + ',user-scalable=no');

    docEl.setAttribute('data-dpr', dpr);

    docEl.firstElementChild.appendChild(fontEl);

    fontEl.innerHTML = 'html{font-size:' + rem + 'px!important;}';

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值