等宽字体的字号和字符宽度之间有什么依赖关系? 我在我的 Web 应用程序中使用“courier new” 字体。我想知道字符串的实际像素长度是多少? 如果我知道 CSS 中的 font-size 属性,如何帮助我了解字符串的实际长度?谢谢
确定这一点的一种可靠方法是使用JavaScript,克隆元素并实时检查大小值。
请查看此jsfiddle示例
http://jsfiddle.net/zUFwx/(代码参考jQuery)
function getSizeOfTextInElement(domElement) {
var $element = $(domElement),
$clone = $element.clone(),
size = {
width : 0,
height : 0
};
$clone.addClass("sizingClone");
$(document.documentElement).append($clone);
size.width = $clone.width();
size.height = $clone.height();
$clone.remove();
return size;
}
var elementToCheck = document.getElementById("checkSizeExample"),
sizeOfElement = getSizeOfTextInElement(elementToCheck),
message = "element has a width of " + sizeOfElement.width + "px";
$("#result").text(message);
<div>
元素的大小,而不是其中的文本。如果你修改了文本,大小并不会改变,但如果你改变它运行的框架大小,它就会改变。 - Anatoliy Kmetyuk如果我做错了什么,请原谅,因为我已经在SO上有一段时间了,但这是我第一次贡献。
这是一件困扰我的事情,@Stephen James真的很好地解决了我所要达到的目标。
我遇到了一些问题,发现你的fiddle中的CSS不正确。
CSS:
#checkSizeExample
{
font-family : Courier;
font-size : 8pt;
}
.sizingClone { // this was originally an id tag not a class tag
position : absolute !important;
/* top : 100% !important;
left : 100% !important; // not sure why but this line was causing the div to
// expand to 100%.
visibility: hidden !important;
width : auto;
height : auto; */
}
我将除sizingClone类中的位置之外的所有内容注释掉了,因为我认为这是不必要的。
现在它完美地工作了。
div
中,然后查询div
元素的大小以获取其宽度。 - jsea