【问题标题】:Word Wrap in Raphael JS / SVGRaphael JS / SVG 中的自动换行
【发布时间】:2012-04-30 04:47:30
【问题描述】:

如何在 RaphaelJS 中将单词包裹在一个盒子中?还是一般基于浏览器的 SVG?

我在上面找到了this thread,但这没有任何意义。他们说要使用“widthToCharNum”,但据我所知,这个帖子是互联网上唯一使用过这些词的地方。他们建议使用“宽度”属性,但这没有效果。

【问题讨论】:

    标签: javascript browser svg raphael


    【解决方案1】:

    文本换行不是内置于 Raphael 或 SVG 规范中的。时期。来自 HTML 世界,我发现没有文本换行非常令人震惊。

    但是,您可以自己做,没有太多困难。有关详细信息和示例,请参阅this question。不幸的是,您必须消耗一些客户端周期才能使其动态工作。

    【讨论】:

      【解决方案2】:

      svg.js 库有一个 svg.textflow.js 插件。它不是超快,但它可以解决问题。它甚至将溢出的文本存储在数据属性中,因此您可以使用它来创建连续流动的列。 Here the text flow example page.

      【讨论】:

      • 这个例子看起来很棒,但是这个库似乎已经不存在了......我已经向 wout 发送了一条消息,看看他是否能澄清这是怎么回事,因为它看起来很有希望!
      【解决方案3】:

      tspan 标签可以产生自动换行的错觉,但没有内置自动换行功能。

      tspan 标记与文本标记相同,但可以嵌套在文本标记内部和自身内部。再加上 'dy' 属性,这允许在 SVG 1.1 中出现自动换行的错觉。请注意,“dy”相对于最后绘制的字形(字符)。 http://tutorials.jenkov.com/svg/text-element.html有一个关于如何使用tspan的教程。

      http://www.xml.com/pub/a/2002/09/11/quint.html 的文章也可能有用。

      【讨论】:

      • 我在这些地方都没有看到“dy”。这是什么?
      【解决方案4】:

      我知道现在有点晚了,但您可能对我的 Raphael-paragraph 项目感兴趣。

      这是一个小型库,可让您创建具有最大宽度和高度限制、行高和文本样式配置的自动换行多行文本。它仍然处于测试阶段,需要大量优化,但它应该可以满足您的目的。

      GitHub 页面上提供了使用示例和文档。

      【讨论】:

        猜你喜欢
        • 2011-02-20
        • 2011-12-17
        • 1970-01-01
        • 2015-09-21
        • 2011-12-31
        • 2015-09-09
        • 2012-09-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多