动态REM(手机专用)

图片
  1. 什么是 REM
    这个单位代表根元素的 font-size 大小(例如 <html> 元素的font-size)。当用在根元素的font-size上面时 ,它代表了它的初始值

  2. 什么是EM
    相对长度单位,这个单位表示元素自身的font-size的计算值。如果用在font-size 属性本身,它会继承父元素的font-size。

  3. 页面上默认的字体大小font-size是16px,chrome默认的最小字体大小是12px。

  4. 动态REM布局


  • 如果把html的font-size设为屏幕宽度的1/100会出bug,因为chrome默认允许的最小font-size为12px,而此时html的font-size可能会小于12px



  • 所以可以把html的font-size设为屏幕宽度的1/10


总结

  1. 手机端方案的特点

    1. 所有手机显示的界面都是一样的,只是大小不同
    2. 1 rem == html font-size == viewport width
  2. 使用 JS 动态调整 REM
    http://js.jirengu.com/xoqadocuqu/2/edit?html,css,output

     <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>
    
    
  3. REM 可以与其他单位同时存在

     font-size: 16px;
     border: 1px solid red;
     width: 0.5rem;
    
    
  4. 在 SCSS 里使用 PX2REM

    • npm config set registry https://registry.npm.taobao.org/

    • touch ~/.bashrc

    • echo 'export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"' >> ~/.bashrc

    • source ~/.bashrc

    • npm i -g node-sass

    • mkdir ~/Desktop/scss-demo

    • cd ~/Desktop/scss-demo

    • mkdir scss css

    • touch scss/style.scss

    • start scss/style.scss

    • node-sass -wr scss -o css

      编辑 scss 文件就会自动得到 css 文件

      在 scss 文件里添加

      @function px( $px ){
        @return $px/$designWidth*10 + rem;
      }
      
      $designWidth : 640; // 640 是设计稿的宽度,你要根据设计稿的宽度填写。如果设计师的设计稿宽度不统一,就杀死设计师,换个新的。
      
      .child{
        width: px(320);
        height: px(160);
        margin: px(40) px(40);
        border: 1px solid red;
        float: left;
        font-size: 1.2em;
      }
      
      

      即可实现 px 自动变 rem

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

推荐阅读更多精彩内容

  • 动态REM是手机专用的自适应方案 REM的值 1. CSS有很多长度单位 px 像素 em 一个"M"的宽度...
    酒极子阅读 1,648评论 0 2
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 移动端适配方案(手机专用,iPad和电脑都不可以用)。 REM是什么 rem MDN查看rem的含义这个单位代表根...
    学的会的前端阅读 945评论 0 1
  • rem 这个单位代表根元素的 font-size 大小(例如 元素的font-size)。 rem 与 em ...
    半斋阅读 368评论 0 0
  • 1.什么是rem? 长度单位:px 像素em 一个m的宽度一个汉字的宽度rem root em 根元素的fonts...
    阿龙哟阅读 949评论 0 0