rem适配

作者: fb941c99409d | 来源:发表于2019-03-04 01:28 被阅读0次

chrome浏览器字体默认16px 最小12px

em

参照当前元素自身或者继承来的font-size

rem

参照html根标签的font-size

rem适配

rem适配原理:改变了一个元素在不同设备上占据的css像素的个数
优点:可以使用完美视口
缺点:计算设计图上的px值到rem的转换比例麻烦
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
window.onload=function(){
        var styleNode = document.createElement('style');
        var w = document.documentElement.clientWidth/16+"px";
        styleNode.innerHTML="html{font-size:"+w+" !important;}"
        document.head.append(styleNode);
};

viewport

viewport适配原理:
      viewport适配方案中,每一个元素在不同设备上占据的css像素的个数是一样的。但是css像素和物理像素的比例是不一样的,所以是等比的
优点:不用计算元素在设计图上的比例
缺点:不能使用完美视口
//因为 screen.width有兼容性问题 所以先设置布局视口=理想视口 ,最终js取的布局视口值等同理想视口
<meta name="viewport" content="width=device-width" />
window.onload=function(){
        var targetW = 600;
        // 理想视口/设计图css值 = 缩放比例
        var scale = document.documentElement.clientWidth/targetW;
        var meta = document.querySelector('meta[name=viewport]');
        //将布局视口 视觉视口通过缩放比例 最终设置成 targetW
        meta.content="initial-scale="+scale+",minimum-scale="+scale+",maximum-scale="+scale+",user-scalable=no"
};

1物理像素的实现

//1.缩放页面实现
(function(){
        //通过DPR将页面缩放 使1个css对应1个物理像素
        var scale = 1/window.devicePixelRatio;
        var meta = document.querySelector('meta[name=viewport]');
        meta.content="width=device-width,initial-scale="+scale+",minimum-scale="+scale+",maximum-scale="+scale+",user-scalable=no"
        
        //rem适配
        var styleNode= document.createElement('style');
        var w =  document.documentElement.clientWidth /16+"px";
        styleNode.innerHTML="html{font-size:"+w+" !important;}";
        document.head.append(styleNode);
        
    })();
//2.媒体查询缩放元素实现
@media only screen and (-webkit-device-pixel-ratio:2 ) {
      #test{
            transform: scaleY(.5);
      }
}
@media only screen and (-webkit-device-pixel-ratio:3 ) {
      #test{
            transform: scaleY(.333333333333333333);
      }
}

相关文章

  • 适配rem

    PPI 计算 适配rem

  • 解决vue移动端适配问题

    1,先看看网上关于移动端适配讲解 再聊移动端页面适配,rem和vw适配方案! 基础点:rem相对根节点 字体的大小...

  • 解决vue移动端适配问题

    1,先看看网上关于移动端适配讲解 再聊移动端页面适配,rem和vw适配方案! 基础点:rem相对根节点字体的大小。...

  • React 配置 rem (移动端适配)

    移动端适配方案介绍 在移动端中,为了设配不同的设备,通常使用rem来做适配。 rem是通过根元素进行适配的,网页中...

  • 移动端适配及pc端跳转代码

    移动端rem适配 pc端跳转

  • loding...

    移动端适配 remflexible.js也是rem适配的,它是将设备分成10份,1rem等于1/10。分析其中部分...

  • 移动Web

    屏幕适配 rem适配 1、设置 设置页面元素宽度单位为 rem 或 em注:此方案比较灵活,我们的案例将采用这种方...

  • 移动端之js控制rem,适配字体

    移动端之js控制rem,适配字体

  • rem布局

    这个可以适配rem布局的JS代码

  • 移动端适配方案

    @description 该方法是用于移动端适配功能, 结合淘宝的适配方案flexible + rem 实现适配,...

网友评论

      本文标题:rem适配

      本文链接:https://www.haomeiwen.com/subject/mpbvuqtx.html