zoukankan      html  css  js  c++  java
  • 如何使用rem

    相信很多人接触的第一个网页尺寸单位是px, 表示一个像素点的大小
    我们收到的设计师的设计稿也是以px为标准

    但手机的屏幕是大小不一的, 在iPhone8上展示的很好的效果, 在iPhone5s上可能就完全走了样, 为了在不同尺寸的屏幕上,都有很好的展示效果, 我们需要对网页进行缩放
    rem是一个很有意思的单位, 1rem的尺寸等于html的font-size的尺寸, 也就是
    html{
    font-size: 100px;
    }

    那么, 1rem就等于100px

    我们可以通过屏幕的宽度, 动态改变 html下font-size的大小, 从而实现网页的缩放
    calc是一个css3自带的函数, 可以实现简单的加减乘除(可以用来取代sass的部分功能)
    rem与calc结合使用, 就可以用极简单的代码实现,多种屏幕的适配

    效果如图所示

    如何使用rem
    <script>
        // 获取设备像素比(dpr -> devicePixelRatio)
        var dpr = window.devicePixelRatio;
        // 动态设置设备缩放比
        var metaTag=document.createElement('meta');
        metaTag.name = "viewport"
        metaTag.setAttribute('content', 'initial-scale=' + 1/dpr + ', maximum-scale=' + 1/dpr + ', minimum-scale=' + 1/dpr + ', user-scalable=no');
        document.getElementsByTagName('head')[0].appendChild(metaTag);
    </script>
    
    <script>
        // 动态设置html的字体大小(页面宽度为1rem)
        document.addEventListener('DOMContentLoaded', function(e) {
            document.getElementsByTagName('html')[0].style.fontSize = window.innerWidth + 'px';
        }, false);
    </script>
    
    <style>
        body{
            text-align: center;
            margin: 0;
            padding: 0;
            line-height: 0;
            
        }
    
        table{
             100%;
        }
    
        .icon{
             calc(196rem / 375);
            margin: calc(100rem / 375) 0 0 0;
        }
        .name{
            margin: calc(30rem / 375) 0 0 0;
            font-size: calc(30rem / 375);
            line-height: calc(30rem / 375);
            color: #64B587;
        }
    </style>
    
    <table>
        <tbody>
            <tr><td><img src="girl.png" class="icon"></img></td></tr>
            <tr><td><p class="name">Yara Barros</p></td></tr>
        </tbody>
    </table>
    

    小结:
    rem是一个动态定义的单位, 结合css3自带的calc函数, 能让我们写一套代码, 轻松适配各种尺寸的屏幕, 另外, 写calc函数的时候, 运算符前后一定要留空格哦~

    作者:木子昭
    链接:https://www.jianshu.com/p/8d7c8c373148
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 相关阅读:
    DPDK安装方法 17.12.13
    numa.h:No such file or directory 解决方法
    17秋 软件工程 第六次作业 Beta冲刺 Scrum3
    17秋 软件工程 第六次作业 Beta冲刺 总结博客
    17秋 软件工程 第六次作业 Beta冲刺 Scrum2
    Paper Reviews and Presentations
    17秋 软件工程 第六次作业 Beta冲刺 Scrum1
    17秋 软件工程 第六次作业 Beta冲刺
    error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/share': Operation not permitted
    17秋 软件工程 个人作业 软件产品案例分析
  • 原文地址:https://www.cnblogs.com/snmic/p/10404775.html
Copyright © 2011-2022 走看看