手机端rem适配模板,js动态修改根节点字体大小

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>手机端rem适配模板</title>
<script>
(function (doc, win) {
setRem();
var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function () {
setRem();
};
if (!doc.addEventListener)
return;
win.addEventListener(resizeEvt, recalc, false);
// doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
function setRem() {
var docEl = document.documentElement;
var clientWidth = docEl.clientWidth;
if (!clientWidth) {
return;
}
docEl.style.fontSize = 100 * (clientWidth / 1080) + 'px';
}
</script>
<style>
html {
font-size: 20px;
max-width: 640px;
min-width: 375px;
}
body {
padding: 0;
margin: 0;
}
ul, li, ol, input {
box-sizing: border-box;
}
input {
outline: none;
}
li {
list-style: none;
}
a {
text-decoration: none;
color: black;
}
.container {
min-height: 100vh;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
text-align: center;
}
header {
width: 100%;
}
.content {
flex: 1;
width: 100%;
}
footer {
width: 100%;
}
</style>
</head>
<body>
<div class="container">
<header>header</header>
<div class="content">1</div>
<footer>footer</footer>
</div>
<script type="text/javascript">//JS监听浏览器文字大小代码
(function (doc, win) {
var docEl = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
};
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
</script>
</body>
</html>
posted @   lambertlt  阅读(102)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2020-07-13 git 升级方法 最简单
点击右上角即可分享
微信分享提示