html5控制字大小的代码,js根据字符串长度控制字体大小代码

本文介绍了如何使用JavaScript库MooTools解决昵称在页面上显示时可能出现的换行问题。通过计算字符串的“占空比”,即中文和英文字符的比例,动态调整字体大小以保持页面美观。文中提供了一个名为`cLength`的函数来计算字符串中中文字符的数量,并基于此计算占空比,进而设置合适的`font-size`。文章最后展示了如何在页面加载时自动执行这个调整过程。
摘要由CSDN通过智能技术生成

使用js库: mootools

应用场景:有时需要在一行显示一个用户的昵称,但是由于昵称的长度不定,所以一旦规定死了font-size,就会出现自动换行等破坏页面美观的情况出现,那么在此种情况下我们可以先判断下字符串的“占空比”.

前端的节点信息:

=$weibo_uname?>

那么怎么计算所谓的占空比呢,因为会夹杂着出现中文和英文,但是如果仅仅计算 string.length是不可行的,因为 “我爱你中国”.length和’aaaaa’.length都是5,但是在页面所占的长度是不同的,那么应景的我们就需要计算得到一个字符串中包含中文的字数,一个函数

function cLength(str){

var reg = /[^\u4E00-\u9FA5\uf900-\ufa2d]/g;

var temp = str.replace(reg,'');

return temp.length;

}

那么根据经验,一个中文占的长度是一个数字或者英文字母的两倍,此时我们就可以得到

function check_nick_name()

{

var myname = $$('[class=info-heading]')[0].innerHTML;//选择器读取字符串

var string_length = parseInt(myname.length);//总长度

var chinese = cLength(myname);//中文字数

var other = string_length - chinese;//英文或者数字数

var total_length = chinese*2+other;//中文字权重*2 ,算比例

//6 26px//我的比例,一行只能显示6个汉字,当7个字需要设置font-size为26px才能显示到一行

if(total_length>=12) {

var set_font_size = 26/(total_length/12);

$$('[class=info-heading]')[0].setStyle('font-size',set_font_size);//添加一个font-size属性

}

}

此时再页面的底部加上首次加载的渲染

window.addEvent('domready',function(){

check_nick_name();

});

就可以自动的完成调整了~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值