移动端动态Rem方案以及1px问题

首先谈一下响应式注意点

1.meta:vp 组织缩放
2.尽量不要写width/height 改用max/min
3.flex布局
4.media query

(移动端)方案思路

1.浏览器禁止980像素的缩放
2.设置html{font-size: 页面宽度/10 px}
3.10 rem==页面宽度
4.所有单位都用rem==所有长度都已页面宽度为基准
5.页面可以兼容任何手机屏幕
ps:但是现在出了新单位vw vh(但是安卓4.4(包括)以上才支持 uc完全不支持~! sad~)

1px问题

1.在普通屏幕
css 1px ==设备的1px
2.在Retina==设备的2px
border-width==设备的1px
border-width:0.5px==设备的1px(兼容性有问题)
最优方案:页面整体缩放50%(initial-scale=0.5)
border-width:1px==设备的1px

副作用
所有div都变为原来的50%

解决:因为所有长度都以rem为基准
rem变为原来的两倍即可

最终code:

<script>
    var scale = 1 / window.devicePixelRatio // 1\2\3
    document.write(`
      <meta name="viewport"
        content="initial-scale=${scale}, maximum-scale=${scale}, minimum-scale=${scale}, user-scalable=no"> 
      `)
</script>
<script>
    var width = document.documentElement.clientWidth / window.devicePixelRatio
    var css = `
    html{
      font-size: ${width / 10 * window.devicePixelRatio}px;
    }
    `
    document.write(`<style>${css}</style>`)
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 对于熟悉pc端的小伙伴来说,对于静态页面的布局,一般都是没有什么问题的,为了保持各浏览器显示的一致性,无论是...
    itclanCoder阅读 13,727评论 5 61
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,862评论 1 92
  • 刚开始做移动端web开发的同学应该都碰到过页面适配问题,为什么我在开发手机上调试好的页面在其他手机会有这样或那样的...
    留七七阅读 19,586评论 5 80
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,584评论 0 6
  • 思念是你 眼角眉梢都在笑 思念是你 心心念念也煎熬 思念是你 魂牵梦绕不骄傲 思念是你 百转千回自知道 思念是你 ...
    卷耳朵朵阅读 116评论 0 1