动态 REM 方案 (移动端方案)

rem是什么

rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算。

动态 REM 方案

1.浏览器禁止 980 像素的缩放(meta:vp 阻止缩放)
2.设置 html {font-size: 页面宽度 / 10 px}
3.10 rem == 页面宽度
4.所有单位都用 rem == 所有长度都以页面宽度为基准
5.页面可以兼容任何手机屏幕

1px 问题

1.在普通屏幕

CSS 1px == 设备的 1px

2.在 Retina 设备

CSS 1px == 设备的 2px
border-width == 设备的 1px
border-width: 0.5px == 设备的 1px (兼容性有问题)

解决方法

页面整体缩放 50% <meta initial-scale=0.5> border-width: 1px == 设备的 1px

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

所有长度都以 rem 为基准,让 rem 变为原来的 2倍

1.获取设备像素比(1/2/3)

window.devicePixelRatio是设备上物理像素和设备独立像素(device-independent pixels (dips))的比例。

2.initial scale = 1/像素比

3.让 rem 变为 rem * 像素比

4.border-top: 1px solid red;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,869评论 1 92
  • 在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一...
    keenjaan阅读 26,977评论 9 86
  • 前言 对于熟悉pc端的小伙伴来说,对于静态页面的布局,一般都是没有什么问题的,为了保持各浏览器显示的一致性,无论是...
    itclanCoder阅读 13,730评论 5 61
  • 作者:HelKyle链接:http://www.w3cplus.com/css/when-to-use-em-vs...
    红叶丶秋鸣阅读 3,348评论 0 3
  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 3,683评论 0 5