JavaScript自适应调整文字大小

在面临页面上数字过长导致重叠的问题时,通过不截断数字而是使用单位缩写(如1K代替1000,1M代替1000K)的方法仍无法解决。尝试使用SVG自动调整文字大小未成功。最后,采用JavaScript根据数字长度动态修改字体大小,通过AngularJS在controller.js中设置样式,并根据字符串长度进行调整,实现了在同一种屏幕下文字大小的自适应。调试过程需细致调整。
摘要由CSDN通过智能技术生成

JavaScript自适应调整文字大小

今天有个任务,发现页面上的数字由于太长而与其他数字重叠了。这个数字还不能像文字那样只显示一部分,必须全部显示。想了一些办法都不行,最后把超过1000变成1K,大于K改成M,这样办法都行,还是长呀。

注意:我这个任务不是在不同屏幕下文字大小调整,而是同一种屏幕下调整字体大小。

在网上还找到了一种方法https://www.zhuwenlong.com/blog/article/528611f363c705fc73000001,但是没有使用。

同时又去试了一下svg是否可以自动调整文字大小,发现不行(可能是我没搞清楚,如果把SVG当成一个图片可能好使)。

最后想了一个办法,根据数字的长度动态修改文字的大小。系统使用AngularJS写的。所以在controller.js中设定了一个$scope.myStyle的样式,并且把样式放在div上:

<div ng-style="myStyle">...</div>

然后在controller.js中判断字符串长度。首先先把数字变成字符串并且都连接在一起,然后判断最终的字符串长度。

示例:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue界面中实现文字自适应显示器分辨率,除了使用CSS3中的vw和vh单位外,也可以借助JavaScript和库来实现。 1. 使用CSS的rem单位 rem单位是相对于HTML根元素的字体大小来计算的。可以在Vue项目中设置HTML根元素的字体大小,然后使用rem单位来实现文字自适应。例如: ```css html { font-size: 16px; /* 设置HTML根元素的字体大小 */ } /* 使用rem单位实现文字自适应 */ h1 { font-size: 2rem; line-height: 2.2rem; } ``` 这样,在不同分辨率下,HTML根元素的字体大小会自适应调整,从而实现文字自适应显示。 2. 使用JavaScript库 Vue项目中可以使用一些JavaScript库来实现文字自适应显示,例如: - Fitty:一个轻量级的JavaScript库,可以自动调整文本的字体大小,使其适应容器大小。 - FitText:一个jQuery插件,可以根据容器大小自适应调整文本的字体大小。 这些库使用起来非常方便,只需要在Vue项目中引入相应的库文件,然后在需要自适应显示的文本元素上添加相应的类名或调用相应的函数即可。 例如,在使用Fitty库时,可以在Vue项目中引入Fitty库文件,然后在需要自适应显示的文本元素上添加类名`fit-text`,如下所示: ```html <template> <div class="text-container"> <h1 class="fit-text">Hello World</h1> </div> </template> <script> import Fitty from 'fitty'; export default { mounted() { // 初始化Fitty库 Fitty('.fit-text'); } } </script> <style> /* 容器样式 */ .text-container { width: 80%; height: 80%; display: flex; justify-content: center; align-items: center; } /* 使用vw和vh单位实现文字自适应 */ .fit-text { font-size: 3vw; line-height: 3.5vw; } </style> ``` 这样,Fitty库会自动调整`h1`元素的字体大小,使其适应容器的大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值