【问题标题】:Why does firefox generate multiple <tspan> for white spaces and how can I prevent it为什么 Firefox 会为空格生成多个 <tspan> 以及如何防止它
【发布时间】:2026-02-25 19:05:02
【问题描述】:

我在使用 Firefox 时遇到了问题
(是的,通常的罪魁祸首是 IE,但这次他表现得很好)。

我正在使用 c3 API 生成条形图,并格式化刻度值
moment 格式的时间 (x) 轴 - MMM D, YYYY
(纯文本也会发生这种情况,但我宁愿写出我所做的)。

Chrome 和 IE 都在一行中显示刻度(例如“Oct 3, 2003”)
但 Firefox 将它分成两行(注意逗号后没有空格)-
Oct 3, 2003

更糟糕的是 -
由于图形的高度,第二行在半高处被切割。

我已经检查了 DOM 结构中的问题,
并发现在 Chrome 和 IE 中,内容都在 &lt;text&gt; 元素内,
而 Firefox 将 &lt;text&gt; 元素的内容拆分为多个 &lt;tspan&gt; 元素
(都受到正在删除的空格的影响)。

我已经检查了谷歌博士,但还没有找到强制 FF 不拆分文本的方法。

我将不胜感激(非常感谢)

更新:图表的here is the jsfiddle link(忽略它没有列数据的事实)。

【问题讨论】:

  • 我想我们需要minimal reproducible example 才有机会回答这个问题。
  • 感谢您的来信,很抱歉没有提前提供。
  • 它看起来像一个 C3 问题。您可以调试 C3 并查看它是如何工作的。我的猜测是,在 FF 中,它发现整个文本没有太多空间,所以它根据空格将其分解成碎片。

标签: html firefox svg axis c3.js


【解决方案1】:

请检查更新的 jsfiddle:-

https://jsfiddle.net/L1b47kdd/26/

我刚刚删除了 y 轴的格式,这个问题在 Firefox 中已修复。请检查..

format: d3.format("d")

【讨论】:

    最近更新 更多