ブラウザでSVGを使用する場合、ブラウザにはgetBBox
という機能があり、さまざまな要素のバウンディングボックスを提供します。しかし、テキスト要素について言えば、このブーディングボックスがどのように計算されるかは本当に混乱していました。 私はフォントサイズがフォントファイルで指定されているem-Boxに基づいていることを知っています。テキストのバウンディングボックスの高さの秘密は何かブラウザのテキストの境界ボックスを再現
fontSize != bbox-height
(ascender-descender)/unitsPerEm * fontSize != bbox-height
(unitsPerEm-descender)/unitsPerEm * fontSize != bbox-height
...maybe adding a fixed amount to ascender for accents? Like Ć
だから、:私のテストは、これらのどれもが(フォントサイズ1000年にわずか数PXが異なる)、FFやChromeと同じ結果を生成しないことを示しているが ブラウザ?コメントへの返信:
私もFFとChromeのソースコードに見えますが、算定の基礎と右の場所を見つけることは、自身の
// EDIT上の課題であることを試みた 私はブラウザで行われたようにsvgテキストのbboxを計算したい(振る舞いを複製する)。私は正確にbboxを計算するのに必要なフォントのメトリックを知っている必要があります(幅と高さは十分です)
実際に何を知りたいですか?あなたが太字で書いたテキストは、決して本当の質問ではないからです。ブラウザは、テキスト解析、harfbuzzやfreetypeなどのシェイパーを使用して特定の書体にバインドされた文字列を取り込み、アウトラインデータとタイプメットメトリックを返すなど、第三者のライブラリを賢明に使用する複雑なアプリケーションです。 –
それでは、質問はどのメトリクスが使用され、どのように入手できますか? – Fuzzyma
クール:あなたの投稿を更新してその質問になることができますか?どのメトリクスがどのような目的に必要なのかを正確に説明するだけでなく、[XY問題](https://meta.stackexchange.com/a/66378)に終わることはありませんか? –