你如何在 RaphaelJS 中将单词包裹在一个盒子里?还是在一般基于浏览器的 SVG 中?
我在上面找到了这个线程,但它没有任何意义。他们说要使用“widthToCharNum”,但据我所知,这个帖子是互联网上唯一使用过这些词的地方。他们建议使用“宽度”属性,但这没有效果。
你如何在 RaphaelJS 中将单词包裹在一个盒子里?还是在一般基于浏览器的 SVG 中?
我在上面找到了这个线程,但它没有任何意义。他们说要使用“widthToCharNum”,但据我所知,这个帖子是互联网上唯一使用过这些词的地方。他们建议使用“宽度”属性,但这没有效果。
Raphael 或 SVG 规范中没有内置文本换行。时期。来自 HTML 世界,我发现没有文本换行非常令人震惊。
但是,您可以自己做,没有太大的困难。有关详细信息和示例,请参阅此问题。不幸的是,您必须消耗一些客户端周期才能使其动态工作。
svg.js库有一个svg.textflow.js插件。它不是超快,但它可以解决问题。它甚至将溢出的文本存储在数据属性中,因此您可以使用它来创建连续流动的列。这里是文本流示例页面。
tspan 标签可以给人一种自动换行的错觉,但没有内置的自动换行功能。
tspan 标记与文本标记相同,但可以嵌套在文本标记内部和自身内部。再加上 'dy' 属性,这允许在 SVG 1.1 中出现自动换行的错觉。请注意,“dy”相对于最后绘制的字形(字符)。在http://tutorials.jenkov.com/svg/text-element.html上有一个关于如何使用 tspan 的教程。
我知道现在有点晚了,但你可能对我的Raphael-paragraph项目感兴趣。
它是一个小型库,可让您创建具有最大宽度和高度约束、行高和文本样式配置的自动换行多行文本。它仍然是 beta-ish,需要大量优化,但它应该可以满足您的目的。
GitHub 页面上提供了使用示例和文档。