从字符串中获取css宽度
Get css width from a string
我有一个字符串,我想在动态传递的网页上显示它。我想能够动态确定显示这个字符串所需的css宽度,然后用显示它所需的确切大小将它包装在html元素中。
我目前正在使用javascript和dojo,所以使用这两种方法可以得到答案,但其他方法都不起作用。
更多详细信息我想我应该澄清一下。我想在输入字段中显示字符串,所以不要像div(我认为至少)
如果您想设置<input>
长度以显示字符串中的所有字符,可以这样设置:
var myString = "abcdefg"; // this is what got input dynamically
var myInputElement = document.getElementById('someInput');
myInputElement.size = myString.length;
因为通常很好的字符度量是通过em。
你可以这样做;
var element = Document.getElementById("ID");
element.style.length = element.value.length + " em";
您必须记住,在根据字符串的字符数计算字符串的像素宽度之前,您必须以某种方式了解所使用字体的度量。
然后,如果要获取输入字符串,请将其包装在<span>,将其嵌入文档中,计算元素的宽度,然后删除跨度并将值添加到其最终目的地。只要跨度与目标元素具有相同的字体样式规则,就可以很好地投影出预期的宽度。
如果你想对它有真正的兴趣和技术性,那么HTML5<画布>标签是你的朋友。
这是一篇很好的文章,可以更好地理解javascript中字体度量的复杂性,也可以帮助您解决这个问题:http://mudcu.be/journal/2011/01/html5-typographic-metrics/#measure
您可以创建一个元素,并在其加载事件中放入一些回调
var span = $("<span/>").text("your input").load(function(e){
console.log($(this).width());
});
这样你就可以得到当前的宽度。不要为span元素定义任何宽度,也不要浮动。
相关文章:
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 是否可以在CSS宽度转换上强制硬件加速
- 如何使用JavaScript变量设置函数集css宽度
- 如何强制砖石使用当前/最新的 css 宽度
- CSS 宽度浏览器特定方式
- 使用 jQuery/JavaScript 单击时增加/减少 CSS 宽度
- 从字符串中获取css宽度
- $.each不更新css宽度
- CSS宽度不'通过.html()克隆html代码时不适用
- CSS宽度从0到x的过渡会导致内容压扁
- CSS宽度动画在点击选项卡时不工作
- 使用Jquery设置CSS宽度时,边框半径会发生变化
- 如果元素旋转,在FireFox中CSS宽度过渡不稳定
- 使用jQuery为容器的子元素设置动态css宽度
- 如何在emberjs中获得css宽度
- CSS宽度100%在文本区域的边距内
- 获取元素的CSS宽度并将其转换为百分比
- (Javascript) CSS宽度()属性不应用,直到窗口大小调整
- 根据屏幕宽度使用Jquery修改CSS宽度
- 如何获取类的 css 宽度