资讯专栏INFORMATION COLUMN

rem自适应原理

vincent_xyb / 2583人阅读

摘要:需要了解的知识和类似,相较于父元素的字体大小,而相较于的字体大小实现原理有了这个以上的前提可以通过监测屏幕大小改变的字体大小,从而实现自适应大小的效果获取设备宽度与设计稿宽度的比例作为的大小假如是那么设计稿上代码就要写这样写太大通常

需要了解的知识
html{font-size:16px}
p{font-size:1rem}
1rem = 16px;

rem 和 em 类似,em相较于父元素的字体大小,而rem相较于html的字体大小;

实现原理

有了这个以上的前提可以通过监测屏幕大小改变html的字体大小,从而实现自适应大小的效果;

获取设备宽度与设计稿宽度的比例 作为html font-size的大小;

假如是750/750 那么font-size:1px;设计稿上200px,代码就要写200rem;这样写太大.

通常750/750*100,多除100;100作为px转化为rem的换算比例,100px = 1rem;那么设计稿750px代码里就要写7.5rem;

function getRem () {
    var html = document.getElementsByTagName("html")[0];
    var  deviceWidth = document.body.clientWidth || document.documentElement.clientWidth;
    var rem = deviceWidth / designWidth * 100;
    console.log(rem)
    html.style.fontSize = rem+ "px";
}

设计稿为750px时,html{font-size:50px;} 50px * 7.5 = 375px;正好是设备的宽度;

当设计稿750px,设备320px时, 320/750100 = 42.6666667;42.66667 7.5 = 320px;

所以当设备为375时 7.5rem是maxWidth,设备是320时,7.5rem也是maxWidth,这样就达到了自适应设备的目的;

简陋版完整代码:
 (function (designWidth,n) {
    function getRem () {
        var html = document.getElementsByTagName("html")[0];
        var  deviceWidth = document.body.clientWidth || document.documentElement.clientWidth;
        var rem = deviceWidth / designWidth * n;
        console.log(rem)
        html.style.fontSize = rem+ "px";
    }
    getRem ()
    window.addEventListener("resize",function (){
        getRem()
    })

})(750,100)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/116294.html

相关文章

  • rem 单位实现页面适应布局

    摘要:单位介绍既然扯到了这个单位,那就有必要先解释下这个单位具体含义,上的解释注意图中的画线部分,这个单位需要高版本的浏览器支持,不过,一般用于移动端布局,所以,基本上无需考虑浏览器版本问题,放心用吧。相对于根元素的大小,自动计算出其具体值。 A. 先看一个函数: /* * 设置根元素字体大小 * @param Number minSW 最小缩放的设备屏幕宽度 * @param Nu...

    xavier 评论0 收藏0
  • 移动端适应布局方案

    摘要:背景现在工作中有超过一半的时间用于移动端项目的开发,包括嵌入页,微信页面和移动页。经过研究,我在公司的多个移动端项目使用了布局来解决移动端自适应布局的问题。简单的说它就是一个相对单位,布局是一个流行的解决移动端响应式布局的方案。 背景 现在工作中有超过一半的时间用于移动端项目的开发,包括app嵌入页,微信页面和移动wap页。 开发移动端页面跟开发PC页面的一个大区别就是移动端对响应式布...

    zacklee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<