JS让网页字体大小随窗口大小改变而改变

news/2025/3/4 4:14:39/

       em 是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在我们多次使用时,就会带来无法预知的错误风险。

       rem 是 CSS3 新增的一个相对单位(root em,根em),这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。(摘自网上)

       要让文本里的字体大小随窗口大小的变化而变化,那么文本字体大小的单位我们用rem 设置,然后通过 js 来设置根元素的字体大小就可以了。

以下是代码示例

<html>
<head><meta charset="utf-8"><title></title><style type="text/css">.p1{ font-size: 1rem; }/*.p2{ font-size: 3rem; }*/</style><script type="text/javascript">// 获取 html 元素var html = document.documentElement;// 封装一个函数function fontS(){// 获取 html 的宽var hW = html.offsetWidth;/* 计算字体大小(一般UI设计图是根据iPhone6的屏幕宽度设计的,即 宽为 750px)当 html 宽度大于 750px 时,html 的 font-size 为 100px;当 html 宽度小于 750px 时,html 的 font-size 为 html 宽度除以 7.5 (方便计算); 可以按自己的习惯设置 */var hS;if(hW > 750){hS = 100;}else{hS = hW / 7.5;}// 给的 html 设置字体大小	html.style.fontSize = hS + "px";}fontS();// 当窗口大小改变时执行函数 window.onresize = function(){fontS();}</script>
</head>
<body><p class="p1">这是 p1</p><!-- <p class="p2">这是 p2</p> -->
</body></html>

       目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略rem用设定的字体大小。


http://www.ppmy.cn/news/732564.html

相关文章

漫步IOS--屏幕局部放大、常用的快捷键、XCode设置显示行号

1 屏幕局部放大 在公司开会或者集体讨论的时候经常需要放大屏幕&#xff0c;MAC集成了提供了屏幕放大的应用。按住Control&#xff0c;双指上划即是放大&#xff0c;下滑即是缩小&#xff0c;滚轮也有同样的效果。如果没有起效果可能是没有打开该功能。【系统偏好设置】-【辅助…

办公技巧:各类特殊符号输入快捷键,瞬间提高你的办公效率

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

windows常用快捷键(截图,录屏,放大镜,虚拟桌面,写字板,资源管理器快捷键)

Windows10常用快捷键&#xff1a; 本文为小编整理的一篇比较常用的无门槛windows快捷键&#xff0c;如有不足&#xff0c;还望大佬得到补充。也希望对更简便的操作能带给你更愉悦的工作体验感。 目录概要 &#xff1a;一 &#xff0c;截图快捷键二&#xff0c;windows10新特性…

解决手机端点击输入框后页面会被放大问题

在测试手机端页面输入框时&#xff0c;点击后整个页面被放大&#xff0c;并且在离开输入框、点击页面其他地方&#xff0c;页面并不会恢复原来的比例&#xff0c;很影响美观 解决方法&#xff1a;只需在页面头部加入两句 <meta> 标签语句即可&#xff0c;若是用 WordPre…

MT8788 Android11 修改默认字体,字体大小和像素密度

环境: MT8788 Android11 ili9881p_hd720_dsi_vdo1.修改默认语言 目录: b/device/mediateksample/tb8788p1_64_bsp/vnd_tb8788p1_64_bsp.mk内容:-PRODUCT_LOCALES : en_US zh_CN zh_TW es_ES pt_BR ru_RU fr_FR de_DE tr_TR vi_VN ms_MY in_ID th_TH it_IT ar_EPRODUCT_LO…

移动端点击字体放大出现抖动状况

项目场景&#xff1a; 在react项目中使用antd组件中的锚点组件&#xff0c;在点击进行跳转的时候锚点字体是需要变大。在控制台点击没有发现这种情况&#xff0c;在真机进行测试出现了字体抖动的情况。 // 锚点点击之前的样式 .ant-anchor-link-title {color: #866c49;font-fa…