(function (doc, win) {
var docEl = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
if(clientWidth>=640){
docEl.style.fontSize = '100px';
}else{
docEl.style.fontSize = 40 * (clientWidth / 640) + 'px';
}
};
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>
rem跟着设备html:font-size变化
</title>
<style type="text/css">
section {
width: 100%;
height: 100%;
background: red;
}
.page{
width: 5rem;
height: 10rem;
background: yellow;
font-size: 0.3rem;
}
</style>
</head>
<body>
<section>
<div class="page">rem
字体变化测试
</div>
</section>
</body>
<script type="text/javascript">
var docEl = document.documentElement,
//当设备的⽅向变化(设备横向持或纵向持)此事件被触发。绑定此事件时,
//注意现在当浏览器不⽀持orientationChange事件的时候我们绑定了resize 事件。
//总来的来就是监听当然窗⼝的变化,⼀旦有变化就需要重新设置根字体的值
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function() {
//设置根字体⼤⼩
docEl.style.fontSize = 20 * (docEl.clientWidth / 640) + 'px';
};
//绑定浏览器缩放与加载时间
window.addEventListener(resizeEvt, recalc, false);
document.addEventListener('DOMContentLoaded', recalc, false);
</script>
</html