git地址:https://github.com/wjf444128852/about-web-rem

建议在CSS引入之前引入下面这段JS代码,比例1rem:100px。

用了这个JS就不用在CSS内写N多个@media screenXXX了。

说明:

  • 在html内最外层元素给max-width:640px,min-width:320px
  • 元素宽高都以rem为单位就会自动缩放
  • 字体大小一般0.2rem-0.34rem,如>h3:font-size:0.3rem,h4:font-size:.28rem,p:font-size:.2rem一般这几个够用了.
  • 引入img标签时候该img必须float或者给一个属性(vertical-align: middle;display:block)否则其与父元素有20多px的margin-bottom
  • 如img想自适应需要给个宽度,宽度可以百分比,可以rem为单位给固定宽度,比如img实际宽度100px,用此JS后想自动缩放,可以css里给该img{width:1rem},其他元素雷同。
  • 如果有用到input时候,该input得浮动或者以rem为单位给固定宽度和高度,不然占据行高很大,出现元素占据位置大时候,float一下即可
  • 参考来源:戳此处
    (function (doc, win) {
    var docEl = doc.documentElement,
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    //orientationchange 事件是在用户水平或者垂直翻转设备(即方向发生变化)时触发的事件。
    //resize事件是屏幕缩放时候触发的事件
    recalc = function () {
    var clientWidth = docEl.clientWidth;
    if (!clientWidth) return;
    if(clientWidth>=640){
    docEl.style.fontSize = '100px';
    }else{
    docEl.style.fontSize = 100 * (clientWidth / 640) + 'px';
    }
    };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
    /*DOMContentLoaded是firefox下特有的Event, 当所有DOM解析完以后会触发这个事件。
    DOMContentLoaded事件本身不会等待CSS文件、图片、iframe加载完成。
    它的触发时机是:加载完页面,解析完所有标签(不包括执行CSS和JS),
    并如规范中所说的设置interactive和执行每个静态的script标签中的JS,然后触发。
    而JS的执行,需要等待位于它前面的CSS加载(如果是外联的话)、执行完成,
    因为JS可能会依赖位于它前面的CSS计算出来的样式。*/
    })(document, window);

    如有不足之处多多指出。。

最新文章

  1. text-shadow文字阴影属性用法
  2. Java多线程系列--“JUC原子类”02之 AtomicLong原子类
  3. 《objective-c基础教程》学习笔记(九)—— Foundation框架介绍
  4. .Net身份验证概述
  5. crontab 日志备份定时任务
  6. Unichar, char, wchar_t
  7. Redis入门(集合)
  8. PAT 1034. Head of a Gang (30)
  9. python描述符 descriptor
  10. Android 开发笔记 “Sqlite Cursor 使用”
  11. ECOS 系统查找商品详情图片存入mysql情况。
  12. Ubuntu cron定时执行任务
  13. ObjectSNMP
  14. calico客户端工具calicoctl
  15. 419 JQuery and BootStrap
  16. 逆向 make 打包错误解决方案 make: *** [internal-package] Error 2
  17. javascript OOP实例—探测器
  18. 基于OSGI.NET的MVC插件式开发
  19. ELK之使用kafka作为消息队列收集日志
  20. LCS(最长公共子序列)问题

热门文章

  1. java IO流 之 字节流
  2. Mysql5.7.13主从同步(复制)配置
  3. QUOTED_IDENTIFIER 选项对 index 的影响
  4. 实战Hybird app:内存溢出与优化
  5. Wireshark图解教程(简介、抓包、过滤器)
  6. MVC4做网站Demo进行重写的问题。
  7. 详解Java中ArrayList、Vector、LinkedList三者的异同点(转)
  8. java面试知识(来自牛客网)
  9. php继承多态
  10. HTTP的RST包与WinHttp延迟关闭TCP连接