我需要svg文本元素的「緊」邊界。當我使用getBBox時,我得到的高度似乎包含字體的完全可能的字形高度,而不考慮文本中的特定字符。我得到的寬度因瀏覽器而異,但通常包含的字符數比字符實際佔用的長度要多。有沒有什麼辦法可以得到一個只包含我文字中字符的盒子?例如,我想要下面創建的矩形緊緊地包裹文本'.....'但是,在由getBBox返回的邊界框中有很多'剩餘'垂直空間。謝謝你的幫助。這是我的第一篇文章StackOverflow,所以我也歡迎格式/問題的演講評論。如何獲得svg文本元素的緊密邊界?
<svg width="400" height="400">
<text>.....</text>
<rect style="fill:none;stroke:rgb(0,100,100);stroke-width:1"/>
</svg>
<script type="text/javascript">
var layout = function() {
var numB = $("text").get(0).getBBox();
$("rect").attr("x", 0);
$("rect").attr("y", 0);
$("rect").attr("width", numB.width);
$("rect").attr("height", numB.height);
$("text").attr("y", numB.height);
}
document.onreadystatechange = function() {
if (document.readyState == "complete") {
layout();
}
}
</script>
謝謝。我擔心它不會過於簡單化,但我認爲值得一問 – 2013-03-09 12:33:35
對於任何碰到這個問題的人,我終於可以得到我想要的這個工具:[Font.js](http://pomax.nihongoresources .COM /頁/ Font.js /)。我已經能夠在Verdana中獲得單個字符和字符串的像素完美邊界。 – 2013-03-09 17:27:48
正確的StackOverflow禮儀將把這個評論放在一個答案,不接受我的答案,並接受你的:) – Duopixel 2013-03-09 17:33:56