js rem

Rem 介绍

css 中的 rem 单位和 em 很像,不过后者的参照物是距离元素最近的父元素的 font-size,前者的参照物是 html 根元素的 font-size

实现原理

通过js快速获取页面宽度后,通过换算动态设置 htmlfont-size,来达到适配不同屏幕大小的手机。为了避免页面元素闪烁,必须要在页面css渲染之前完成计算,所以要将计算代码放到 head 的样式引用之前。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 手机端自动判断 rem
<script type="text/javascript">
(function() {
var b = document.documentElement,
a = function() {
var a = b.getBoundingClientRect().width;
var a = a < 640 ? a : 640;
b.style.fontSize =( .0375 * a) + "px";
},
c = null;
window.addEventListener("resize",
function() {
clearTimeout(c);
c = setTimeout(a, 300);
});
a();
})();
</script>

压缩

1
<script type="text/javascript">(function(){var b=document.documentElement,a=function(){var a=b.getBoundingClientRect().width;var a=a<640?a:640;b.style.fontSize=(0.0375*a)+"px"},c=null;window.addEventListener("resize",function(){clearTimeout(c);c=setTimeout(a,300)});a()})();</script>
------------- 本文结束 感谢您的阅读 -------------

本文标题:js rem

文章作者:水中熊

发布时间:2018年06月11日 - 18:06

最后更新:2018年06月11日 - 18:06

原始链接:https://shuizhongxiong.github.io/js-rem.html

许可协议: 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。 转载请保留原文链接及作者。

🌹坚持原创技术分享,您的支持将鼓励我继续创作!🌹
0%