Javascript:在预容器中获取文本字符串的显示宽度
Javascript : getting the display width of text string in a pre container, in em
在容器中添加非等宽字体、制表符等…
那么如何派生一个文本字符串的宽度显示在容器中…
这在经常改变字体的设备/网站上很有用。因此,不需要在每次调整尺寸时"重新绘制"尺寸(使用插入、测量、删除)方法。其中一些没有事件可以触发/观察。
手动使用em工作到目前为止…问题是如何使之自动化。jQuery.width()返回px.
您可以将px转换为em。记住公式:
var em = px / fontSize;
所以,如果你有一个pre
元素,font-size
设置为1em
,通常是16px
,你在px中的宽度是800px
,那么你在em中的宽度是800 / 16
或50em
。希望这对你有所帮助。如果你觉得我的答案有用,就给我投票。
不完美,但可以完成工作(某种程度上)[使用jQuery]
// [div] : a dom node to test insertion of string (inherits its css prop too)
// [str] : the string to test against
function getEmLen( div, str ) {
var oriInner = div.innerHTML;
var res;
div.innerHTML = '<a>'+str+'</a><a>m</a>';
res = Math.ceil( 100 * (jQuery(div.firstChild).width()) / (jQuery(div.lastChild).width()) ) / 100;
//the * 100, / 100 is to remove long trailing divides
div.innerHTML = oriInner;
return ''+res+'em';
}
相关文章:
- 使用 jQuery 从选择标签中抓取文本
- 将字符串连接到输入类型为“”的字符串;文本“;领域JavaScript
- 使用 javascript 的子字符串特定文本
- JavaScript replace() 不替换包含文字 字符串的文本
- 从折线图的字符串值(文本)制作 x 坐标
- 使用 casperjs 抓取文本节点的最快方法
- 如何分析 XML 文件和抓取文本值
- 如何使用javascript将字符串从文本框转换为数字
- 用字符串填充文本区域
- 从 URL 中抓取文本和媒体
- 使用 JS 和 html5 从字符串创建文本文件
- 如何修复正则表达式以仅从广告系列中选择base_bid - 而不是跳过我的结束字符串 - base_bid文本
- 如何检查一个字符串是否不包含另一个字符串的文本
- 如何在 javaScript 中添加 C# 字符串作为文本弹出窗口
- 如何使用特殊字符(%,等)将字符串从文本区域更新到mysql表
- Ajax 脚本接收用户字符串输入文本并以 JSON 格式发布
- 使用预制字符串的文本替换和使用 JavaScript 的 HTML 中的按钮
- Google Apps脚本中Google文档中字符串的文本格式
- 如何从URL中抓取文本并放置在JS数组中
- JS从文本框中抓取文本,传递给asp.net mvc ActionResult,但ActionResult参数显示为nu