rem结合css3原生函数, 完成手机端各类屏幕适配

作者 : 开心源码 本文共1447个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共178人阅读

相信很多人接触的第一个网页尺寸单位是px, 表示一个像素点的大小

我们收到的设计师的设计稿也是以px为标准

但手机的屏幕是大小不一的, 在iPhone8上展现的很好的效果, 在iPhone5s上可能就完全走了样, 为了在不同尺寸的屏幕上,都有很好的展现效果, 我们需要对网页进行缩放

rem是一个很有意思的单位, 1rem的尺寸等于html的font-size的尺寸, 也就是

html{  font-size: 100px;}

那么, 1rem就等于100px

  • 我们可以通过屏幕的宽度, 动态改变 html下font-size的大小, 从而实现网页的缩放

  • calc是一个css3自带的函数, 可以实现简单的加减乘除(可以用来取代sass的部分功能)

  • rem与calc结合使用, 即可以用极简单的代码实现,多种屏幕的适配

效果如图所示

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>如何使用rem</title>    <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></head><body>    <style>        body{            text-align: center;            margin: 0;            padding: 0;            line-height: 0;                    }        table{            width: 100%;        }        .icon{            width: 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>    </body></html>

小结:

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

上一篇 目录 已是最后

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » rem结合css3原生函数, 完成手机端各类屏幕适配

发表回复