美文网首页
rem适配移动端

rem适配移动端

作者: icon6 | 来源:发表于2019-05-31 09:13 被阅读0次

引言

  • 最近连续写了一个月的移动端企业网站,抽空总结跟大家分享下

rem是什么

  • rem(font size of the root element)是指相对于根元素的字体大小的单位。

rem使用

  • 现在一般手机端都是按照375px来设计,通常我们会拿到的750pxpsd设计稿,这是我们需要把设计稿的宽度/2

  • 页面开头处引入下面这段代码,用于动态计算font-size

    window.onload = function () {
        var w = document.body.clientWidth; //获取屏幕宽度
        // 这里*100 是为了取整数
        var x = parseInt((w * 100) / 375 * 10) / 10; //获取任意屏幕上的根节点字体大小
        document.getElementsByTagName('html')[0].style.fontSize = x + 'px';
        //监听屏幕宽度变化
        window.onresize = function () {
            var w = document.body.clientWidth; //获取屏幕宽度
            var x = parseInt((w * 100) / 375 * 10) / 10;; //获取任意屏幕上的根节点字体大小
            document.getElementsByTagName('html')[0].style.fontSize = x + 'px';
        }
    }
    

撸个小小的例子看下


  <!DOCTYPE html>
  <html lang="en">
  
  <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <script>
          window.onload = function () {
              //获取屏幕宽度
              var w = document.body.clientWidth; 
              // 这里*100 是为了取整数
              var x = parseInt((w * 100) / 375 * 10) / 10; 
              //获取任意屏幕上的根节点字体大小
              document.getElementsByTagName('html')[0].style.fontSize = x + 'px';
              //监听屏幕宽度变化
              window.onresize = function () {
                  //获取屏幕宽度
                  var w = document.body.clientWidth; 
                  //获取任意屏幕上的根节点字体大小
                  var x = parseInt((w * 100) / 375 * 10) / 10;; 
                  document.getElementsByTagName('html')[0].style.fontSize = x + 'px';
              }
          }
      </script>
  
      <style>
          * {
              margin: 0;
              padding: 0;
          }
  
          body {
              max-width: 750px;
              margin: 0 auto;
          }
        /* 如果按照750px的设计搞量出来头部的高度为80的话,那么在转换过程中你需要的这样计算 80/2/100 最后计算出高度为0.4rem*/
          /* 80/2是转换成375px的手机端,除以100转换成rem单位 */
          header {
              background: purple;
              height: 0.4rem;
          }
      </style>
  
  </head>
  
  <body>
      <header>
  
      </header>
  </body>
  
  </html>

rem字体大小图片
  • 这里根元素字体大小为100px;在375px下元素高度为40px=0.4rem;
  • 在不同的分辨率下,会根据根元素字体大小自适应元素的大小,来达到适配

案例

相关文章

网友评论

      本文标题:rem适配移动端

      本文链接:https://www.haomeiwen.com/subject/ppiitctx.html