如果你的意思是你想讓文本精確地填充任意的寬度和高度,那麼在SVG中並不是一個簡單的方法。您無法在<text>
元素上指定寬度和高度。至少不在當前的SVG規範(1.1)中。
但是有幾種方法可以通過一些技巧來達到這種效果。
一種方式是通過使用變換,因爲你提示:
<svg>
<text font-size="10px" font-family="Verdana" transform="translate(99,400) scale(3.5,13.7)">SQUASHED TEXT</text>
<rect x="100" y="300" width="300" height="100" fill="none" stroke="red" />
</svg>
的第二種方式是通過使用一個內<svg>
元件和設置視框匹配的文本的邊界。然後您設置preserveAspectRatio="none"
。
<svg>
<svg x="100" y="100" width="300" height="100" viewBox="0.2 -7.3 86 7.3" preserveAspectRatio="none" overflow="visible">
<text font-size="10px" font-family="Verdana">SQUASHED TEXT</text>
</svg>
<rect x="100" y="100" width="300" height="100" fill="none" stroke="red" />
</svg>
這種方式是更詳細的,但它有,一旦你找到正確的視框的一段文字的優勢,可以使其很容易適應任何尺寸的矩形。只需將內部<svg>
的x
,y
,width
和height
設置爲矩形的大小即可。
此處演示:http://jsfiddle.net/ZRgEF/3/
不太確定爲什麼在寬度/高度之後。作爲使用字體大小的示例,http://jsfiddle.net/emCqs/不能像這樣定位/大小。還是有一個特定的要求,你需要適應動態文本的形狀,或其他? – Ian