文本标签svg,其他行的长文本

时间:2017-08-22 04:37:52

标签: css svg

我的文字很长。它的文字是动态的,可以是短的。如何通过超出包含它的文本标记的宽度使文本保持在另一行?我还想知道如何将边框样式应用于rect标签。

感谢

https://jsfiddle.net/yftfy15q/

var svg = d3.select("body").append("svg");

var groupTooltip = svg.append("g")

var rect = groupTooltip.append('rect')
  .attr('width', 300)
  .attr('height', 100)
  .style('fill', 'white')
  .attr('class','myclass')
  .attr('stroke', 'black');


var text = groupTooltip.append('text').text('This is some information XDDDDDDDDDSSSSSSSSS XDDDD XDDDDDDDDDDDDDDDDDD')
  .attr('width', 100)
  .attr('x', 120)
  .attr('y', 30)
  .attr('id', 'tooltip_text')

var image = groupTooltip.append('image')
  .attr("x", 4)
  .attr('width', 100)
  .attr('height', 100)
  .attr('id', 'tooltip_image')
  .attr('xlink:href', 'https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png')

1 个答案:

答案 0 :(得分:1)

您可以将文字拆分为特定限制,然后将其附加到tspan内。 在这里,我将文字限制为18并将每个文本附加到tspan内,并相应地定位每个文字。

var texts="This is some information XDDDDDDDDDSSSSSSSSS XDDDD XDDDDDDDDDDDDDDDDDD";
var list=[];
list=texts.match(/.{1,18}/g);
var text = groupTooltip.append('text')
  .attr('width', 100)
  .attr('x', 120)
  .attr('y', 30)
  .attr('id', 'tooltip_text')
for (i = 0; i < list.length; i++) {
  groupTooltip.select("text").append("tspan")
    .text(list[i])
    .attr("dy", i ? "1.2em" : 0)
    .attr("x", 110)
    .attr("text-anchor", "left")
    .attr("class", "tspan" + i);
}
  

text元素可以安排在任意数量的子组中   tspan元素。每个tspan元素都可以包含不同的格式和   位置。

&#13;
&#13;
var svg = d3.select("body").append("svg");

var groupTooltip = svg.append("g")

var rect = groupTooltip.append('rect')
  .attr('width', 300)
  .attr('height', 100)
  .style('fill', 'white')
  .attr('class','myclass')
  .attr('stroke', 'black');

var texts="This is some information XDDDDDDDDDSSSSSSSSS XDDDD XDDDDDDDDDDDDDDDDDD";
var list=[];
list=texts.match(/.{1,18}/g);
var text = groupTooltip.append('text')
  .attr('width', 100)
  .attr('x', 120)
  .attr('y', 30)
  .attr('id', 'tooltip_text')
for (i = 0; i < list.length; i++) {
  groupTooltip.select("text").append("tspan")
    .text(list[i])
    .attr("dy", i ? "1.2em" : 0)
    .attr("x", 110)
    .attr("text-anchor", "left")
    .attr("class", "tspan" + i);
}

var image = groupTooltip.append('image')
  .attr("x", 4)
  .attr('width', 100)
  .attr('height', 100)
  .attr('id', 'tooltip_image')
  .attr('xlink:href', 'https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png')



  				
&#13;
.myclass{
   stroke: blue;
   rx: 12;
   ry: 12;
}
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.js"></script>
&#13;
&#13;
&#13;