• css rem应用


    根据设计稿的实际宽度值,与设计稿最大宽度值,动态计算根字体大小,适应不同的屏幕比例。  

    本文的px转rem换算公式为:

    100px = 1rem 
    18px = 0.18rem

    基础css

    body,dl,dd,ul,ol,h1,h2,h3,h4,h5,h6,pre,form,input,textarea,p,hr,thead,tbody,tfoot,th,td{margin:0;padding:0;}        
    ul,ol{list-style:none;}
    a{text-decoration:none;}
    html{-ms-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;}
    body{line-height:1.5; font-size:14px;}
    body,button,input,select,textarea{font-family:'helvetica neue',tahoma,'hiragino sans gb',stheiti,'wenquanyi micro hei',5FAE8F6F96C59ED1,5B8B4F53,sans-serif;}
    b,strong{font-weight:bold;}
    i,em{font-style:normal;}
    table{border-collapse:collapse;border-spacing:0;}
    table th,table td{border:1px solid #ddd;padding:5px;}
    table th{font-weight:inherit;border-bottom-2px;border-bottom-color:#ccc;}
    img{border:0 none;auto9;max-100%;vertical-align:top; height:auto;}
    button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;vertical-align:baseline;}
    button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
    button[disabled],input[disabled]{cursor:default;}
    input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}
    input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}
    input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}
    input:focus{outline:none;}
    select[size],select[multiple],select[size][multiple]{border:1px solid #AAA;padding:0;}
    article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}
    audio,canvas,video,progress{display:inline-block;}
    body{background:#fff;}

    电脑刺绣绣花厂 http://www.szhdn.com 广州品牌设计公司https://www.houdianzi.com

    js

    脚本计算 rem单位 需要的基准字体大小  

    //designWidth:设计稿的实际宽度值,需要根据实际设置
    var DesignWidth = 375;
    //maxWidth:制作稿的最大宽度值,需要根据实际设置
    var MaxWidth = 375;
    //这段js的最后面有两个参数记得要设置,一个为设计稿实际宽度,一个为制作稿最大宽度,例如设计稿为750,最大宽度为750,则为(750,750)
    (function(designWidth, maxWidth) {
      var doc = document,
          win = window,
          docEl = doc.documentElement,
          remStyle = document.createElement("style"),
          tid;
    
      function refreshRem() {
        var width = docEl.getBoundingClientRect().width;
        maxWidth = maxWidth || 540;
        width>maxWidth && (width=maxWidth);
        var rem = width * 100 / designWidth;
        remStyle.innerHTML = 'html{font-size:' + rem + 'px;}';
      }
    
      if (docEl.firstElementChild) {
        docEl.firstElementChild.appendChild(remStyle);
      } else {
        var wrap = doc.createElement("div");
        wrap.appendChild(remStyle);
        doc.write(wrap.innerHTML);
        wrap = null;
      }
      //要等 wiewport 设置好后才能执行 refreshRem,不然 refreshRem 会执行2次;
      refreshRem();
    
      win.addEventListener("resize", function() {
        clearTimeout(tid); //防止执行两次
        tid = setTimeout(refreshRem, 300);
      }, false);
    
      win.addEventListener("pageshow", function(e) {
        if (e.persisted) { // 浏览器后退的时候重新计算
          clearTimeout(tid);
          tid = setTimeout(refreshRem, 300);
        }
      }, false);
    
      if (doc.readyState === "complete") {
        doc.body.style.fontSize = "16px";
      } else {
        doc.addEventListener("DOMContentLoaded", function(e) {
          doc.body.style.fontSize = "16px";
        }, false);
      }
    })(DesignWidth, MaxWidth);
  • 相关阅读:
    给pdf文件添加防伪水印logo(附工程源码下载)
    关于正则,那些年一直存在的疑惑解答(正则菜鸟不容错过)
    那些年用过的一些前端框架
    优化Javascript数据遍历
    PHP5 mysqli 教程
    程序员一年工作经验之谈
    TCP协议的性能评测工具 — Tcpdive开源啦
    VMware Tools (ubuntu系统)安装详细过程与使用
    利用BBRSACryptor实现iOS端的RSA加解密
    Spring AOP详解(转载)
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/13808930.html
Copyright © 2020-2023  润新知