我正在研究一个React组件,其中我在rect
元素内渲染了一个text
元素和一个rect
元素。
此外,我想指定text
元素的垂直对齐:为此,我发现了dominant-baseline
(https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/dominant-baseline)属性,它是完美的。 />
不幸的是,dominant-baseline
属性在IE11和Edge上均不起作用。为了解决该问题,我认为我可以使用dy
属性手动调整位置,但这是问题所在:使用dominant-baseline
属性,浏览器将准确地考虑文本,而不是其边界框。
例如,如果我将hanging
分配给dominant-baseline
属性,并且将text
元素10px
从rect
元素的顶部放置,则可以获得以下内容:
如您所见,从10px
到rect
的位置是rect
的顶部和标签实际书写之间的距离。相反,如果我考虑boundingBoxRect
元素的text
,并用它从顶部text
元素中放置10px
元素rect
,我结果如下:
首先,我希望我已经正确解释了什么是“假设”,然后是我的问题:是否有办法检索文本所占用的实际空间?像getTextBoundingBox
一样?否则,我无法在Chrome / Firefox / Opera(在dominant-baseline
工作的地方)和IE / Edge(在其中我需要将dy
属性与getBoundingBoxRect()
一起使用)获得完全相同的结果)