【问题标题】:Styling values on the x-axis for D3.js created graphsD3.js 创建图形的 x 轴上的样式值
【发布时间】:2015-09-08 10:55:32
【问题描述】:

我有一个用 D3.js 创建的条形图。 x 轴上的值之一太长。我正在尝试添加 CSS 属性 text-overflow: ellipsis, width: 10px 和 overflow: hidden 所以超过一定长度的值被缩写。不过好像不太喜欢这个。我无法设置宽度。标签的。我尝试将它放在开发工具中的容器中,并将上面列出的属性应用于容器,但也没有工作。代码如下:

<g class="tick" transform="translate(0, 10)" style="opacity: 1;">
  <line x2="-6" y2="0">
  <text x="-9" y="0" dy=".32em" style="text-anchor: end;">Longcat is looooooooooooooooooooooooooooong</text>
</g>

我注意到在创建条形图时,添加了内联样式 text-anchor: end。我知道这是做什么的,将值名称整齐地放在轴刻度旁边。但是我该如何设置这个文本标签的样式,例如“Longcat is looooooooooooooooooooooong”只显示为“Longcat ...”

谢谢 ——高文

【问题讨论】:

标签: javascript css d3.js


【解决方案1】:

您需要在绘制文本之前剪切文本。

d.name = (d.name.length > 7 ) ? d.name.substring(0, 7) + "..." : d.name;

这是一个工作代码:http://jsbin.com/baxilo/edit?html,output

希望这会有所帮助:)

【讨论】:

  • 我考虑过做这样的事情。但这些是动态创建的图表,可能涉及很多繁琐的事情。但是如果没有其他方法我想我可以尝试一下。没有CSS解决方案吗?编辑:哦,拉斯在上面确认了。无法在 SVG 中执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多