在做web应用开发时,有可能需要计算出字符串在页面上所占的宽度,从而正确的调整页面的布局。
比如,当我们需要在有限的空间内显示动态变化的字符串时,当字符串表示宽度超过有限空间时,要么缩小字体来表示,要么截断字符串来表示。
以下给出了一个获取字符串表示宽度,和截取字符串的方法:
需要注意的是,必须保证span控件的字体和即将放置字符串的控件的字体保持一致,同时span控件必须设置为占据空间的(style.display不能为none)。
1. 添加一个span控件用来暂存字符串;
<span id="ruler"></span>
2. 设置span控件的css属性
#ruler { visibility: hidden; white-space: nowrap; } //nowrap:禁止文字自动换行
3. 获取字符串的表示宽度
function $(id) { return document.getElementById(id); } String.prototype.visualLength = function() { var ruler = $("ruler"); ruler.innerHTML = this; return ruler.offsetWidth; }
4. 截取字符串
String.prototype.trimToPx = function(length) { var tmp = this; var trimmed = this; if (tmp.visualLength() > length) { tmp = tmp.substring(0, tmp.length-1); if(tmp == "") { return ""; // Return empty string } trimmed = tmp + "…"; while (trimmed.visualLength() > length) { tmp = tmp.substring(0, tmp.length-1); trimmed = tmp + "..."; } } return trimmed; }
详细参见:
相关推荐
Javascript 后端的字符串像素宽度测量。 支持的字体: Andale Mono Arial Avenir Avenir Next Comic Sans MS Courier New Georgia Helvetica Impact Times New Roman Trebuchet MS Verdana Webdings Open Sans ...
java字符串的像素处理,java字符串的像素处理,java字符串的像素处理,
计算字符串宽度,输入一个字符串,计算该字符串宽度,不是字符数量,也不是lenth,是字符串的宽度,单位是像素
QT字符串设置固定宽度,前位补0.7zQT字符串设置固定宽度,前位补0.7z
使用GDI32中API计算字符串的精确象素长度
输入一个字符串参数,返回该字符串的反序字符串
C#字符串删除指定字符串|C#字符串删除子字符串
* @param delimiter 边界上的分隔字符 * @param haystack 输入的字符串 * @param out 输出的字符串指针 * @return 分割成了多少个成员 */ int explode(char *delimiter, char *haystack, char *out[]) { int ...
编写程序:从键盘上输入一个包含10个字符的字符串,把该字符串与程序中给定的字符串("bacdbcabca") //依次比较,统计两个字符串对应字符相等的数目。然后输出从键盘上输入的字符串, //并把两个字符串中对应字符不...
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
字符串 介绍 字符串 介绍 字符串 介绍 字符串 介绍
求两个字符串的最长公共字符串 输出全部位置信息,并输出字符串,相同字符串先输出所有位置信息在输出字符串 测试平台:XP/VS 2008 CN
纯C语言实现字符串拆分操作,把字符串拆分成字符串数组,然后再输出。 使用sstream方法,作为底层驱动操作实现非常方便。
必须实现如下操作,字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),...
给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...
易语言字符串操作源码,字符串操作,字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideChar,WideCharToMultiByte
一个关于字符串匹配的算法,已经经过编译,希望对你有帮助
编写控制台应用程序,接受长度大于3的字符串,完成以下功能: 1:输出字符串长度 2:输出字符串中第一个出现字母a的位置 3:在字符串的第3个字符后面插入字符串“hello”,输出新字符串. 4:将字符串“hello”替换为...
|PowerBuilder 数组字符串相互转化 天津 李华锋 * * | | * *PowerBuilder 数组字符串相互转化 完全免费 * * | | * *如果你将这个程序放在你的网站上,我希望你能同时加上本站的链接 | | * | * | * *老字符串转数组...
字符串提取(获取两个字符串中间的字符串) http://blog.csdn.net/isaced/archive/2011/01/24/6161259.aspx