svg中的文本与一般页面中的文本并不一样,svg中的文本使用<text></text>
标签来包住文字,所以页面中文本换行功能无法使用,这时候就要我们自己设置部分属性来使其换行。
首先是基本的svg文本使用一个text标签包住。
<text id="SvgjsText1008" font-family="宋体" class="board-text" y="162.00" font-size="10.00pt" dy="11" x="91.00">这是第一段文本和第二段文本</text>
如果要分行的话需要在text标签中添加tspan标签来分行。
<text id="SvgjsText1008" font-family="宋体" class="board-text" y="154.00" font-size="10.00pt" dy="11" x="134.80">
<tspan id="SvgjsTspan1058" dy="13" x="134.8">这是第一段文本</tspan>
<tspan id="SvgjsTspan1059" dy="13" x="134.8">和第二段文本</tspan></text>
显示结果如下:可以正确的分为上下两段,其中x和dy是必须的,x代表文本开始的x轴位置,dy则代表了文字偏移的位置,dy的值要根据文本的高度来设置,如果不设置x的值则会第一段文字和第二段文字虽然分开,但是第二段文字在不设置x的时候会默认在原本的x轴位置,同样的不设置dy的值的话,文本会在原本行的高度,同时不设置x与dy的话文本虽然包在两个tspan标签下,但是实际看起来的效果与没分行的时候是一样的。使用方法:由于是基于svg.js的,所以必须引入svg.js,详见这里
var text = draw.text(function(add) {
add.tspan('第一行').newLine()
add.tspan('第二行').newLine().dx(20)
add.tspan('第三行').newLine().dy(20)
})