位置: 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灯)(语音模块作用)

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

  • lsa-an00是什么型号(lsa-an00是什么型号这手机换屏幕多少)

    lsa-an00是什么型号(lsa-an00是什么型号这手机换屏幕多少)

  • chrome截屏快捷键(chrome截屏快捷键是哪个)

    chrome截屏快捷键(chrome截屏快捷键是哪个)

  • 微信看一看3朋友看过是什么意思(微信看一看朋友点赞是实时出现吗)

    微信看一看3朋友看过是什么意思(微信看一看朋友点赞是实时出现吗)

  • vivo手机指纹解锁在哪(vivo手机指纹解锁不显示)

    vivo手机指纹解锁在哪(vivo手机指纹解锁不显示)

  • ios14支持哪些设备呢(ios 14支持的机型)

    ios14支持哪些设备呢(ios 14支持的机型)

  • 快手小店怎么投诉(快手小店怎么投放广告)

    快手小店怎么投诉(快手小店怎么投放广告)

  • 苹果微信朋友圈怎么发文字(苹果微信朋友圈发视频模糊怎么解决)

    苹果微信朋友圈怎么发文字(苹果微信朋友圈发视频模糊怎么解决)

  • 八类网线能家用吗(八类网线能家用吗500M光线)

    八类网线能家用吗(八类网线能家用吗500M光线)

  • 苹果的返回小圆点在哪里设置(苹果的返回小圆点在哪里)

    苹果的返回小圆点在哪里设置(苹果的返回小圆点在哪里)

  • airpods pro充电时灯会一直亮吗(airpods pro充电时一直响)

    airpods pro充电时灯会一直亮吗(airpods pro充电时一直响)

  • 苹果手机的辅助触控为什么总是自动消失了(苹果手机的辅助圆圈那个怎么弄出来)

    苹果手机的辅助触控为什么总是自动消失了(苹果手机的辅助圆圈那个怎么弄出来)

  • 如何关掉拼多多拼小圈(如何关掉拼多多隐私号码)

    如何关掉拼多多拼小圈(如何关掉拼多多隐私号码)

  • 探探没上线会更新位置距离吗(探探上的人不上线怎么办)

    探探没上线会更新位置距离吗(探探上的人不上线怎么办)

  • 苹果手机最上面一排不见了(苹果手机最上面的横槽是什么)

    苹果手机最上面一排不见了(苹果手机最上面的横槽是什么)

  • 微信封群是什么状态(微信封群是什么原因)

    微信封群是什么状态(微信封群是什么原因)

  • 恢复华为自带的天气(恢复华为自带的时间)

    恢复华为自带的天气(恢复华为自带的时间)

  • 大数据应用安全策略包括(大数据应用安全风险)

    大数据应用安全策略包括(大数据应用安全风险)

  • 美团订后砍五折怎么砍(美团订单5折退款)

    美团订后砍五折怎么砍(美团订单5折退款)

  • 脚注1加圆圈怎么打(脚注怎么把圆圈设置成方括号)

    脚注1加圆圈怎么打(脚注怎么把圆圈设置成方括号)

  • 荣耀5手环可以打电话吗(荣耀5手环可以测血压吗?)

    荣耀5手环可以打电话吗(荣耀5手环可以测血压吗?)

  • 苹果手机怎么改成别的城市定位(苹果手机怎么改字体)

    苹果手机怎么改成别的城市定位(苹果手机怎么改字体)

  • 小米盒子复位键在哪里(小米盒子复位键没用)

    小米盒子复位键在哪里(小米盒子复位键没用)

  • 趣键盘表情包在哪(怎么用趣键盘输入表情包)

    趣键盘表情包在哪(怎么用趣键盘输入表情包)

  • AI:人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略(《ai人工智能》)

    AI:人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略(《ai人工智能》)

  • 税金及附加现金流量表
  • 企业税负怎么算
  • 水电费进项税额怎么抵扣
  • 员工餐补是放入福利费吗?
  • 个税系统设置在哪里
  • 去年科目记错如何调账
  • 企业所得税资产总额怎么算出来的呢
  • 工业企业生产成本包括哪些
  • 收到物业费普通发票做账
  • 受托加工怎么做账
  • 加计扣除是什么意思啊举例
  • 电费发票开据后如何入帐
  • 行政单位年初预算怎么做
  • 企业用银行存款购买原材料
  • 期末数未分配利润为负数的会计分录怎么处理?
  • 所得税预缴申报表
  • 关联企业税收
  • 个人所得税特殊计税方法
  • 过节时单位发的奖金
  • 企业收到票据时应以什么入账
  • 产值等于营业额吗
  • 个体工商户交企业所得
  • 在同一预缴地有多个项目的建筑业纳税人总销售额以什么为标准确定?
  • 资产置换税务处理案例
  • 工会残保金必须缴纳吗
  • 上月没交社保本人能交吗
  • 小微企业行业划分标准 工信部
  • macbook上安装windows10
  • 普票被退回如何处理
  • 怎么冲财务费用
  • PHP生成静态页面
  • php操作mysql数据库
  • php java c#
  • 购买财务软件报什么科目
  • 公司借款利息可以用对公户转账吗
  • npm ERR! notarget No matching version found for xxx@^1.0.64. npm 插件安装失败
  • transformer中的token
  • 网上学电脑的软件
  • 企业所得税月月交吗
  • 没有抄报税就申报了怎么办
  • 股东出资方式包括
  • php判断ua
  • 个人帮公司代持股份
  • 企业出租无形资产使用权取得的收入应计入
  • 公司有收入可以做零申报吗
  • 销售农产品是否交消费税
  • 一般纳税人混凝土税率
  • 固定资产一次性扣除政策
  • 提供加工修理修配劳务包含哪些
  • 建筑劳务公司需要什么资质
  • 固定资产盘盈为什么计入管理费用
  • 物业管理企业会计核算的特点如何?
  • 一般纳税人增值税减免政策2023
  • 差旅费误餐补助
  • 个体工商户公帐转法人私人账户
  • 建筑业 分包
  • 发票金额太大怎么办
  • 有契税发票没有增值税发票
  • select语句中的select*说明
  • 粘贴板有问题不能粘贴怎么处理
  • xp怎么安装framework
  • wp7.8升级wp8
  • 如何设置电脑从d盘启动
  • win7系统开启无线服务
  • win7无法正常关机
  • win10外置光驱读不出光盘怎么办
  • linux 多线程 写文件
  • win8自带驱动吗
  • Python内置函数的应用操作
  • unity ui图层
  • webpack vue-loader
  • android 笔记软件推荐
  • Linux中的host命令应用实例详解
  • javascript 基础篇3 类,回调函数,内置对象,事件处理
  • Android的AdapterView及其子类简介-android学习之旅(二十三)
  • 落实落地是什么意思
  • 我国历年财政支出总额
  • 小微企业印花税减半政策
  • 青岛个人所得税咨询电话是多少
  • 税率分几种 分别是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设