我在下面有一个SVH文本元素:
JSFiddle - http://jsfiddle.net/E4VvX/
<text y="9" x="0" dy=".71em" style="text-anchor: middle; max-width: 30px;width: 30px;white-space: pre-wrap;" >Jul 2014</text>
文字如下所示:1行:-----&gt;
但我希望文本以2行呈现,如下所示:-----&gt;
我怎样才能做到这一点?
答案 0 :(得分:2)
您需要将每个部分打包到tspan
中的文本,将d
属性设置为0
,将dy
属性设置为将其移动。
.dt {
text-anchor: middle;
-webkit-transform: translate(50px,50px);
-moz-transform: translate(50px,50px);
-ms-transform: translate(50px,50px);
-o-transform: translate(50px,50px);
transform: translate(50px,50px);
}
<svg width="100px" height="100px">
<text class='dt'><tspan x="0" dy="0em">Jul</tspan><tspan x="0" dy="1em">2014</tspan></text>
</svg>
<强>更新强>
这也可以使用foreignObject
执行类似操作,代价是Internet Explorer 9支持。
<强> JSFiddle 强>
foreignObject {
text-align: center;
-webkit-transform: translate(50px,50px);
-moz-transform: translate(50px,50px);
-ms-transform: translate(50px,50px);
-o-transform: translate(50px,50px);
transform: translate(50px,50px);
}
<svg width="100px" height="100px">
<foreignObject width="40px" height="40px" requiredExtensions="http://www.w3.org/1999/xhtml">
<body xmlns="http://www.w3.org/1999/xhtml">Jul 2014</body>
</foreignObject>
</svg>