渲染

2013-10-08 93 views
5

之前获取文本的宽度在SVG我想提出一个矩形围绕SVG文本。 我知道文本的高度(text元素的font-size属性)。但宽度取决于实际内容。应该使用getBBox()getComputedTextLength()。但是这只在渲染后才起作用。渲染

是否有指定以其他方式呢?例如,定义相对于其他值的xwidth属性?我在SVG Spec中没有找到类似的东西。

+0

这有什么错渲染之后测量呢? –

+0

@RobertLongson代码复杂性和视觉跳跃。我正在动态生成整个文档。应准备好所有对象,然后将其添加到文档中,然后进行渲染。在渲染后计算时,我必须渲染未完成的对象,然后在渲染后更改它们。这会导致视觉跳跃。 – radlan

+0

将您的代码添加到问题中?您是否试图获取尚未插入文档的元素的bbox和文本长度? –

回答

0

搞清楚其中的文本结束大概需要大致相同的底层代码路径渲染本身实现 - 通过基于字体和样式等每个字符的宽度会......由于我不知道SVG标准定义了直接获取这些信息而不进行实际完整渲染的方法,直到这些方法出现或由其他人在此报告,则该方法应该是在进行实际渲染之前不可见地渲染。

你可以做,在一个隐藏层(z-index的,不透明度和东西),或可见视,无论在实验中效果最好的外部。你只需要获得浏览器进行呈现给找出来,这样你无形中渲染为目的,然后使用getComputedTextLength()