位置: IT常识 - 正文

前端设置页面字体尺寸跟随屏幕大小而进行变化(前端页面默认字体)

编辑:rootadmin
前端设置页面字体尺寸跟随屏幕大小而进行变化

推荐整理分享前端设置页面字体尺寸跟随屏幕大小而进行变化(前端页面默认字体),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端设置页面字体大小,前端设置字体大小,前端设置字体,前端字体怎么设置?,web前端页面设置字体大小,前端设置页面字体大小,前端设置页面字体大小,前端页面默认字体,内容如对您有帮助,希望把文章链接给更多的朋友!

越来越多的前端项目现在需要这个操作,其操作的原因很简单,你的项目可能跑在小尺寸分辨率的电脑上,也有可能在大尺寸的会议平板上,更有甚者是在LED上。那么如何让你的项目根据屏幕分辨率的大小而自动变化,修改页面展示字体以及调整尺寸呢?

按照我们所需功能,我们还是先来对一下流程及需求。

第一:我们要求页面一打开就获取屏幕大小,通过计算设置尺寸及字体大小。

第二:我们当页面分辨率修改后(拖动、或者分辨率转换)我们也需要设置其尺寸和大小。

鉴于以上两种需求。我们可以提炼出。

1. 我们需要一个监测屏幕分辨率的方法。

2. 我们的页面尺寸需要使用rem来进行编写。

3. 我们需要根据屏幕情况来动态设置font-size

下来我们来编写代码:

我们新建一个文件index.js  并将这个文件引入到 index.html 中

在这个index.js中我们先放置一个空的自执行函数

// 项目根目录新建文件 util.js放置一个自执行函数(() => { // 内容})()

然后在这个自执行函数里我们再写一个函数方法,这个方法来动态设置字体大小

(() => { // 设置字体大小 function calcFontSize() { const zoom = window.screen.width / 1920; const size = zoom * 16; document.documentElement.style.fontSize = size + 'px'; console.log('设置字体大小', size); }})()

上述代码中,我们首先获取屏幕的大小,以1920 为主。1920分辨率下默认font-size设置为16px。至于为什么要设置 font-size。那是因为rem的缘故,此处不了解的可以自行百度。

设置完设置字体代码后,我们完成了上述需求的第三个,则还需要第一个跟第二个。

前端设置页面字体尺寸跟随屏幕大小而进行变化(前端页面默认字体)

那下来我们再写一个方法用来监测电脑分辨率。window.onload

(() => { // 设置字体大小 function calcFontSize() { const zoom = window.screen.width / 1920; const size = zoom * 16; document.documentElement.style.fontSize = size + 'px'; console.log('设置字体大小', size); } window.onload = () => { }})()

上述中window.onload 方法的意思是用于在网页加载完毕后立刻执行的操作,即当 HTML 文档加载完毕后,立刻执行某个方法。也就是页面初始化的时候去加载。在这里面我们需要昨个操作,也就是页面一加载完的时候,我们需要去给window的 onresize 绑定一个方法。

window.onload = () => { console.log("页面加载完成") let resize_timer = null; const resize = () => { } window.onresize = resize; }

window.onresize的意思是,当监测到屏幕分辨率变的时候,所以我们需要一个操作就是,页面一加载完成,我们给window.onresize 绑定一个方法。这个方法只绑定一次,而不需要每次都去绑定。这样的话,当每次屏幕分辨率改变的时候,都会去执行 resize 这个方法。

那么这个方法里我们应该些什么呢?那就是调用我们第一步做的 calcFontSize 这个方法,修改整个document的font-size 属性。

window.onload = () => { console.log("页面加载完成") let resize_timer = null; const resize = () => { calcFontSize(); } window.onresize = resize; }

目前的完整代码如下:

(() => { // 设置字体大小 function calcFontSize() { const zoom = window.screen.width / 1920; const size = zoom * 16; document.documentElement.style.fontSize = size + 'px'; console.log('设置字体大小', size); } calcFontSize(); window.onload = () => { console.log("页面加载完成") const resize = () => { calcFontSize(); } window.onresize = resize; }})()

我们去页面上查看,会发现当我们拖动文档流的时候,字体并不会重新设置。如下我拖了两次都没有触发修改。同样是12.8.

只有当我们改完电脑屏幕分辨率后,它才会重新设置。就比如,我从笔记本的屏幕拖动项目到外接显示器上。它就会响应重新设置 font-size。如下:

 当我拖到外接显示器后,它自动的出发了 calcFontSize 方法重新配置了字体大小。

 到这里我们的主功能就设置结束了。

但是我们发现每次触发resize后。

我们的resize被执行了两次?这是怎么回事呢?

这是因为,每次window.onresize  都会去执行 resize,而在屏幕分辨率发生变化的时候,window.onresize 和浏览器的自身实现有关系.不同的浏览器和操作系统实现可能不一样,目前谷歌是执行了两次,有是时候是一次。所以导致页面变化有点闪动。那怎么办呢?

那就是去增加settimeout 来达到短时间只触发一次的效果。

(() => { // 设置字体大小 function calcFontSize() { const zoom = window.screen.width / 1920; const size = zoom * 16; document.documentElement.style.fontSize = size + 'px'; console.log('设置字体大小', size); } window.onload = () => { console.log("页面加载完成") let resize_timer = null; const resize = () => { if (resize_timer) { clearTimeout(resize_timer); } resize_timer = setTimeout(() => { resize_timer = null; calcFontSize(); }, 500); } window.onresize = resize; }})()

上述代码中,我们利用防抖的方式来使用setTimeout 达到了让 resize 在短时间内只执行一次的效果。再次尝试后发现,页面功能一切正常。

页面组件样式大小也达到了我们的要求。

本文链接地址:https://www.jiuchutong.com/zhishi/285064.html 转载请保留说明!

上一篇:SU-03T语音模块的使用(小智语音控制LED灯)(语音模块作用)

下一篇:迷迭香怎么养,阳台如何养殖迷迭香(图文)(迷迭香怎么养殖方法)

  • 如何才能发帖却又不被版主删去,七大技巧进行论坛发帖(如何才能发帖却不封号)

    如何才能发帖却又不被版主删去,七大技巧进行论坛发帖(如何才能发帖却不封号)

  • 将轻视转化成动力(将轻视转化成动作的方法)

    将轻视转化成动力(将轻视转化成动作的方法)

  • 快手小店保证金怎么退(快手小店保证金根本退不了)

    快手小店保证金怎么退(快手小店保证金根本退不了)

  • qq动态名片的设置方法是什么(02qq名片动态)

    qq动态名片的设置方法是什么(02qq名片动态)

  • 华为p20pro耳机插上没反应(华为p20pro耳机插哪里)

    华为p20pro耳机插上没反应(华为p20pro耳机插哪里)

  • 抖音授权管理是什么意思(抖音授权管理是空的怎么添加)

    抖音授权管理是什么意思(抖音授权管理是空的怎么添加)

  • iphone热点身份验证失败(iphone热点身份验证出现问题)

    iphone热点身份验证失败(iphone热点身份验证出现问题)

  • 苹果商店退款多久能到账(苹果商店退款多久到账户)

    苹果商店退款多久能到账(苹果商店退款多久到账户)

  • 抖音秒赞会限流吗(抖音秒赞限流了怎么办怎么恢复限流)

    抖音秒赞会限流吗(抖音秒赞限流了怎么办怎么恢复限流)

  • 荣耀10自动重启怎么回事(荣耀10自动重启解决方法黑猫)

    荣耀10自动重启怎么回事(荣耀10自动重启解决方法黑猫)

  • 主板z和b什么区别(z主板跟b主板)

    主板z和b什么区别(z主板跟b主板)

  • 虎牙怎么注销账号(虎牙怎么注销账号不了)

    虎牙怎么注销账号(虎牙怎么注销账号不了)

  • 微信怎么更换头像(微信怎么更换头像框图片)

    微信怎么更换头像(微信怎么更换头像框图片)

  • 手机imei是什么意思(oppo手机imei是什么)

    手机imei是什么意思(oppo手机imei是什么)

  • 趣键盘打字怎么不出图片了(趣键盘打字怎么不出来图)

    趣键盘打字怎么不出图片了(趣键盘打字怎么不出来图)

  • 快手上的黄钻有什么用(快手的黄钻有啥用)

    快手上的黄钻有什么用(快手的黄钻有啥用)

  • 三星s8卡托断了怎么取(三星s8卡托断了还能用吗)

    三星s8卡托断了怎么取(三星s8卡托断了还能用吗)

  • 怎样制作美篇相册(怎样制作美篇相框)

    怎样制作美篇相册(怎样制作美篇相框)

  • x20plus防水吗(x2pro防水)

    x20plus防水吗(x2pro防水)

  • 分隔符怎么删除(excel表格中的分隔符怎么删除)

    分隔符怎么删除(excel表格中的分隔符怎么删除)

  • Oracle21C:Windows版本的安装、卸载、环境变量配置、避坑指南|ORA-12514|为什么安装目录没有bin目录(oracle win10)

    Oracle21C:Windows版本的安装、卸载、环境变量配置、避坑指南|ORA-12514|为什么安装目录没有bin目录(oracle win10)

  • 一只南美貘幼崽小跑着穿过草地 (© Nick Fox/Shutterstock)(南美貘叫什么)

    一只南美貘幼崽小跑着穿过草地 (© Nick Fox/Shutterstock)(南美貘叫什么)

  • 2023年highway-env更新之后的使用记录(含DDQN,DuelingDQN,DDQN+OtherChanges) 入门到入土,再踩坑就不玩原神了

    2023年highway-env更新之后的使用记录(含DDQN,DuelingDQN,DDQN+OtherChanges) 入门到入土,再踩坑就不玩原神了

  • 兼职是属于劳动报酬吗
  • 养老院营利性与非营利如何认定
  • 收到投资款怎么做账
  • 资产负债表应付账款怎么算
  • 人力资源服务发票
  • 公司租车怎么抵税
  • 厂家给经销商的搭赠政策
  • 应付账款借方余额在资产负债表中怎么列示
  • 盘亏存货需要进项税额转出吗
  • 库存商品检验合格标准
  • 辅助生产交互分配后的实际费用应在进行分配
  • 调财务报表怎样调整
  • 销项发票采集不出来怎么回事
  • 私车公用油费计入什么科目
  • 公司租车税务处理办法
  • 固定基金会计分录怎么处理
  • 农产品收购发票上的买价含税吗
  • 小规模纳税人不用交增值税吗
  • 股票现金分红
  • 个人偶然所得捐赠扣除标准
  • 资产负债表中的预付款项目应根据什么填列
  • 公司终止的时间是进行注销登记生效后
  • 行政单位代管资金怎么做账
  • 汇算清缴退税计入什么科目
  • 非全日制劳动用工扣税
  • 境内所得和境外所得
  • 资产收购的特殊性税务处理方法
  • 合同成本对应科目
  • 上年费用未计提
  • 会计实务加班费的账务处理
  • 企业购入固定资产一次性税前扣除
  • 无销售发票的基本户收入?
  • 提租补贴应计入什么科目
  • 圣何塞在哪
  • php获取当天是星期几
  • 米苏拉塔是哪个国家
  • 金银首饰以旧换新消费税怎么算
  • 小帽科技
  • nginx跨域配置详解
  • 销项负数发票需要入账吗
  • 金税盘减免怎么做分录
  • 支出和收入怎么算呀
  • 固定资产售后回购会计处理
  • 土地增值税的相关问题
  • 被冲红发票怎么处理
  • mongodb设置远程连接
  • 科技型中小企业享受优惠税收政策
  • MYSQL administrator 使用
  • 城建税退税分录怎么做
  • 营改增后个人所得税计税依据实例
  • 供应商折扣一次多少
  • 按公允价值入账的有哪些
  • 上市公司固定资产增加是好事吗
  • 公允价值模式下出售投资性房地产
  • 什么是长期股权投资
  • 海量数据的查询
  • ubuntu启动vncserver
  • 防盗信息
  • 电脑xp系统虚拟内存不足怎么解决
  • Win10 Mobile 10586.36在Lumia640 XL中的体验 很流畅
  • glUnmapBuffer
  • 简述opengl的编程步骤
  • nodejs 异步
  • linux中的shell编程
  • python如何精确小数
  • android studio右边的视图不见了
  • python2与python3的区别
  • node.js使用教程
  • shell脚本定时任务怎么写
  • Python线程进程协程
  • jquery实现倒计时效果
  • android开发和java开发区别
  • jquery实战
  • 保险是不是跟车走
  • 一般纳税人出租房屋增值税税率
  • 税务金三系统什么意思?
  • 税控盘开票资料怎么导出几年前的开票信息
  • 陕西地方水利建设基金减免政策2023
  • 重庆税务电子税登录
  • shell ftp -n
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设