在我的SVG中,有一个包含p元素的foreignObject。我希望这个结构的高度能够适应我的文本高度。
p元素已经适应了:我没有做任何事情。
但是,对于foreignObject,我遇到了一些问题。如果我删除height字段,它就不起作用。height:auto也不起作用。
在我的SVG中,有一个包含p元素的foreignObject。我希望这个结构的高度能够适应我的文本高度。
p元素已经适应了:我没有做任何事情。
但是,对于foreignObject,我遇到了一些问题。如果我删除height字段,它就不起作用。height:auto也不起作用。
由于放大和缩小foreignObject
本身没有实际用途,因此您可以将 foreignObject 的 height
和 width
都设置为1
,并通过CSS设置 foreignObject { overflow: visible; }
使其内容可见且无论内容如何都可以进行处理。
您可以使用em
单位设置foreignObject
元素的高度,这可能有所帮助?
目前一个foreignObject
元素的width
和height
属性是必需的,并且必须具有大于0的值,否则该元素将无法呈现。
更新:另一种替代方法是将foreignObject
的尺寸设置为100%,并利用foreignObject
默认具有透明背景的特性。由于SVG中的其他元素按绝对方式布局,因此它们不依赖于foreignObject
的大小。
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>
p { position: absolute; top: 50%; left: 50%; width: 100px; }
</style>
<circle cx="50%" cy="50%" r="25%" fill="lightblue"/>
<foreignObject width="100%" height="100%">
<p xmlns="http://www.w3.org/1999/xhtml">
some wrapped text...
some wrapped text...
some wrapped text...
some wrapped text...
</p>
</foreignObject>
</svg>
高度
和宽度
设置为1
,并将溢出
设置为visible
,然后你就完成了。 - mahish