我正在尝试使用封装 DVI DOM 元素的 foreignObject SVG 元素在 SVG 中实现文本流。我的问题是设置了哪些 CSS 参数,所以我可以使用自定义的 fon-maily 样式。
我使用以下步骤。
0. For defined 'maximal-width' value :
1. Make a foreignObject at least max-width wide
2. Put a DIV element inside with some text and max-width : 'maximal-width' style.
3. Get it's size (width x height) and update the size of the foreignObject element in the end.
4. Make some SVG rectangle in the background with the same size as the text/foreignObject element.
预期的结果是封装在相同大小的 foreignObject 元素中的包装文本,背景中的 SVG 矩形也具有相同的大小。
但
使用 display 时出现问题:inline/inline 块与不同的字体系列设置。
我在这里http://jsfiddle.net/zm7Xb/3/做了一些小例子,我使用 Chrome 得到了正确的结果,使用默认字体显示:inline-block CSS。使用 Helvetica 会产生一个比内部文本更宽的 DIV 元素。使用 google-font 会导致更糟糕的结果。
使用 display : inline 固定宽度,但会导致错误的垂直大小(高度)。即使使用默认字体。
在 Firefox 中测试,结果相同。
我看不出问题出在哪里。也许与这个svg 附加文本元素有关 - 给了我错误的宽度?更重要的是:我能做些什么来解决它?