function calculateSpanHeight(testLine,font){
var spanElement = $(document.createElement("span")).css("white-space","pre");
spanElement[0].id = "tempSpan";
var spanElement = $(spanElement).html(testLine);
$(spanElement).appendTo("body");
$(spanElement).css("font",context.font);
var testWidth = $("#tempSpan").width();
var height = $("#tempSpan").height();
var block = $('<div style="display: inline-block; width: 1px; height: 0px;"></div>');
var div = $('<div></div>');
div.append(spanElement, block);
var body = $('body');
body.append(div);
var result = {};
block.css({ verticalAlign: 'baseline' });
result.ascent = block.offset().top - spanElement.offset().top;
block.css({ verticalAlign: 'bottom' });
result.height = block.offset().top - spanElement.offset().top;
result.descent = result.height - result.ascent;
$(div).remove();
return {"testWidth" : testWidth, "height" : height, "spanElement" : spanElement, "ascent" : result.ascent, "descent" : result.descent};
}
我使用了以下代码。它可以正确地获取文本宽度和高度值。但我需要文本上升和下降值完全是浮点值。请帮助我,并提前致谢。
答案 0 :(得分:1)
它不是&#34;不可能&#34;,它不是内置于浏览器的可用API中。 JavaScript可以解析字体文件并像任何其他应用程序一样读取度量标准数据。
我知道的两个图书馆......
http://opentype.js.org/font-inspector.html的屏幕截图: