首页 > 其他分享 >字体大小自适应宽度功能核心逻辑

字体大小自适应宽度功能核心逻辑

时间:2022-11-14 23:02:22浏览次数:43  
标签:逻辑 字体大小 lenstr height 宽度 str var div

项目中用到,故做了下整理

字体大小自适应宽度功能核心逻辑

通过文字面积与div面积进行比较,从而对字体大小进行自适应处理

如果小于12px,使用css缩放(transform:scale)

效果如图:

<!DOCTYPE html>
<html>
<head>
<title>字体大小自适应</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<style>
.div{
width:150px;
height:22px;
line-height:22px;
display:block;
font-size:20px;
overflow:hidden;
}
.div span{
display:inline-block;
width:350px;
height:22px;
transform-origin: 0 0;
line-height:22px;
vertical-align:middle;
}
</style>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>
<div style="font-style:italic;color:gray">字体大小自适应div宽度演示</div>
<div class='div' span style="font-weight:bold;height:30px;line-height:30px;">亲爱的旅人</span></div>
<div class='div'></div>
<div class='div'>就此告别吧</div>
<div class='div'>水上的列车就快到站</div>
<div class='div'>开往未来的路上</div>
<div class='div'>没有人会再回返</div>
<div class='div'>说声再见吧</div>
<div class='div'>就算留恋也不要回头看</div>
<div class='div'>在那大海的彼端</div>
<div class='div'>一定有空濛的彼岸</div>
<div class='div'>做最温柔的梦</div>
<div class='div'>盛满世间行色匆匆</div>
<div class='div'>在渺茫的时空</div>
<div class='div'>在千百万人之中 听一听心声</div>
<div class='div'>一路不断失去 一生将不断见证</div>
<div class='div'>看过再多风景眼眸如初清澄</div>
<div class='div'>爱依旧让你动容</div>
<div class='div'>亲爱的旅人</div>
<div class='div'>没有一条路无风无浪</div>
<div class='div'>会有孤独 会有悲伤</div>
<div class='div'>也会有无尽的希望</div>
<div class='div'>亲爱的旅人</div>
<div class='div'>这一程会短暂却又漫长</div>
<div class='div'>而一切终将 汇聚成最充盈的景象</div>
</body>
<script language="javascript">
$(function(){
$(".div").each(function(){
var str=$(this);
var fontw=20; //初始的字体大小
var fonth=fontw+2;//初始字体高度
var width=str.width();//DIV的宽度
var height=str.height();//div的高度
var lenstr=str[0].innerText.length;//DIV里文字长度
fonts=fontw*fonth*lenstr;//字体面积
divs=width*height;//DIV面积
if(fonts>divs){
var rfont;//重设字体大小为rfont
//rfont=Math.round((Math.sqrt(4*lenstr*divs-4*lenstr*lenstr)-2*lenstr)/(2*lenstr));
rfont=divs/lenstr/fonth;
if(rfont>=12){
str.css("font-size",rfont+"px");
}
else {
str.html("<span>"+str.html()+"</span>");
str.find("span").css("transform","scale("+divs/fonts+")");
}
}
});
});
</script>
</html>

标签:逻辑,字体大小,lenstr,height,宽度,str,var,div
From: https://www.cnblogs.com/tomcat2022/p/16890844.html

相关文章

  • 思维分析逻辑 2 DAY
    目录数据分析多元思维模型微观能力中观能力宏观能力电商平台分析整体数据漏斗模型互联网金融分析授信模型了解芝麻信用分结构数据源的数据变量数据处理游戏数据分析常规指......
  • 逻辑回归
    一、逻辑回归算法原理逻辑回归(LogisticRegression)属于机器学习—监督学习—分类。逻辑回归(LogisticRegression)主要解决二分类问题,用来表示某件事情发生的可能性。......
  • 思维分析逻辑 1 DAY
    数据分析原则:坚决不做提数机器。数据分析工作模块日报了解业务现状提升数据敏感性数据波动解释周报了解数据的短期趋势版本迭代分析为结论型报告背书月报......
  • 逻辑地址和页表
    逻辑地址逻辑地址由页号和页内偏移量组成页号20位,最多允许\(2^{20}\)页页面大小为页内偏移量的最大值,页内偏移量12位,则每页大小\(2^{12}\mathrm{~B}=4\times2^{10}\m......
  • Day3-3 逻辑运算符,位运算符,三元运算符
    逻辑运算符,位运算符,三元运算符packageoperator;​//逻辑运算符publicclassDemo05{publicstaticvoidmain(String[]args){//与&&。或||,......
  • 物理CPU、逻辑CPU
    /********************************************************/1.物理CPU:physical每个cpu上的核数:cpucore逻辑CPU:processor2.X86的CPU一般都支持超线程;......
  • 逻辑回归
    逻辑回归在线性回归的基础上,套用sigmoid等平滑函数,将线性回归的结果映射成事件的概率。值得注意的是线性回归的结果可以是任意大小的数值,所以它可以被用于预测任务中,如预......
  • 逻辑回归
    逻辑回归逻辑回归(LogisticRegression)是一种用于解决二分类(0or1)问题的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能......
  • 感知机、逻辑回归、损失函数
    1、感知机是一种简单的线性二分类模型,是神经网络的基础。有x1,x2,...xn个输入,所有的输入会进入到神经元,在神经元中,每个输入x都会与之对应的权重参数wi相乘,在计算所有输入信......
  • 逻辑仿函数
    4.3.4逻辑仿函数功能描述:实现逻辑运算函数原型:template<classT>boollogical_and<T>//逻辑与template<classT>boollogical_or<T>......