
视口发生改变根标签文字大小也要跟着改变
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>div {width: 2rem;height: 5rem;background-color: bisque;}</style></head><body><div></div><script>function fn() {//获取当前设备的宽度let cwidth = document.documentElement.offsetWidth;//定义变量保存分数let num = 20;//计算根标签文字大小let font_size = cwidth / num;//给html标签设置文字大小document.documentElement.style.fontSize = font_size + "px";}fn();//给window注册resize事件(resize事件只要设备屏幕大小发生变化,就会触发这个事件)window.onresize = function () {fn();};</script></body></html>
封装一个rem适配的js文件,在需要的html中直接导入使用即可

//适配以及其他功能的JS//关键设置html字体大小//获取屏幕的大小//把代码写到自调用函数中,避免变量污染(function () {let setFont = function () {let html = document.documentElement//获取html大小//获取也的宽度let width = html.clientWidth//offsetWidth包含边框(区别)// 适配一个范围1024-1920if (width < 1024) width = 1024if (width > 1920) width = 1920// 计算字体大小let fontSize = width / 80 + 'px'html.style.fontSize = fontSize//给html设置跟标签文字大小}//当屏幕打开的时候先调用一次setFont()//当设备的尺寸发生改变的时候,动态设置根标签的大小window.addEventListener('resize', function () {setFont()})})()
