动态 REM

单位

px:像素
em:一个 M 的宽度(面试:一个字的宽度)
rem:root em 根元素(<html>)的 font-size
vh:view height,视口高度 100vh === 视口高度
vw:view width,视口宽度 100vw === 视口宽度

十二像素法则

浏览器默认 font-size:16px;
Chrome浏览器默认最小字号为12px:font-size:12px;
所以一般情况下,rem 的font-size不要小于12px;

rem

rem 就是 <html>元素的 font-size,默认为 16px;(浏览器默认font-size)
rem和em 的区别:

  • rem 和 em 没有任何联系
  • rem 是根元素的 font-size
  • em 是字体中 M 的宽度

手机端布局方案

  1. 百分比
  2. 整体缩放

百分比布局问题:高度无法确定,宽度与高度没办法关联到一起。

动态rem

一切单位以屏幕宽度为标准,就能完美还原设计稿。
动态REM思路:动态rem 采用整体缩放的思想,在页面渲染之前,使用JS获取设备宽度并设置rem(1rem == html font-size == viewport width),之后的布局单位全部使用rem来实现整体缩放。

使用JS动态调整rem(写在页面头部)

<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 <script>
     var pageWidth = window.innerWidth
     document.write('<style>html{font-size:'+pageWidth+'px;}</style>')
 </script>

在使用动态 rem 布局的移动端页面中,很小的宽度如border-width 依然使用px,因为即使使用rem,当rem小于1px 时,依然会被浏览器当做1px 使用。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 响应式 1.meta:vp 阻止缩放 2.尽量不要写width / height,改用max / min 不要把宽...
    阿鲁提尔阅读 3,173评论 0 1
  • 设备像素(device pixel): 设备像素是物理概念,指的是设备中使用的物理像素。 比如iPhone 5的分...
    fredah阅读 3,003评论 0 0
  • rem是什么 rem(font size of the root element)是指相对于根元素的字体大小的单位...
    shadow123阅读 3,369评论 0 0
  • layout 和 screen的宽度 在比较遥远的时候,网页还是在pc端流行,很少有人开发移动端网页,所有网页的宽...
    sunny519111阅读 3,468评论 0 2