私はSVGテキスト要素を持っています。私はIE9、Chrome、Firefoxでbboxを取得していますが、その3つすべてが私にさまざまな価値をもたらします。なぜテキスト要素のSVG bboxメソッドが異なるブラウザで異なる結果になるのですか?
私は本当にシンプルなjsfiddleを作成しました。これはSVGテキストとそのサイズを表示するので、意味を理解することができます。私はクライアントrectを試して、それがもっと良いかどうかを調べました。
HTML/SVGあなたが見ることができるように、使用するフォントは、試験した3つのブラウザとに存在する共通のArial、あるJavaScriptの
var bbox1 = document.getElementById("text_name").getBBox();
var f = document.getElementById("text_name").getClientRects();
document.getElementById("size").innerHTML = "<p>Width:" + bbox1.width + " Height: " + bbox1.height + "<br>" + "Width:" + f[0].width + " Height: " + f[0].height + "</p>";
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="75px">
<text font-size="8pt" id="text_name" x="30" y="44" fill="#000000" stroke-width="0pt" font-family="Arial,Helvetica,sans-serif" text-anchor="middle" visibility="inherit">
<tspan x="30" y="44" dy="8">Text Content</tspan></text>
</svg>
<div id="size"></div>
テストfont-sizeも指定されています。したがって、私は、3つのブラウザすべてでテキストの境界が同じになることを期待していました。私はそれをエクスポートして別のツールで再利用できるようにテキスト境界を計算する必要があるので、一貫性のある値が必要です。
なぜ値が異なるのか分かりましたら、境界がすべての場合に適切になるように適切な調整を行うことができます。ここで
は、異なるブラウザでgetBBoxの結果は()です:
IE9 : Width:61.029998779296875 Height: 12.260002136230468
Chrome: Width:61 Height: 14
Firefox: Width:64.63671875 Height: 13
を参照してください。 – cuixiping
@cuixipingあなたは3つのブラウザすべてから高い範囲を意味しますか?問題は私が比較する他の境界を持っていないということです。私のクライアントは1つのブラウザを使用しています。このブラウザーは、私が仕事をしなければならない価値があります。 – Melanie