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