如何在svg rect内打包文本
How to pack text inside svg rect
我希望将svg文本放入矩形中,我可以使用一种方法来比较宽度并为文本添加换行符,但这并不繁琐。
还有比这更优雅的方式吗?也许通过使用CSS或d3?
UPDATE:下面的代码使用d3追加了foreignObject,但是div不显示。(它在代码检查器中)
var group = d3.select("#package");
var fo = group.append("foreignObject").attr("x", 15).attr("y", 15).attr("width", 190).attr("height", 90);
fo.append("div").attr("xmlns", "http://www.w3.org/1999/xhtml").attr("style", "width:190px; height:90px; overflow-y:auto").text("Thiggfis the dgdexsgsggs wish to fit insidegssgsgs");
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<p id="p"></p>
<svg width="220" height="120" viewBox="0 0 220 120" id="package">
<rect x="10" y="10" width="200" height="100" fill="none" stroke="black"/>
</svg>
名称空间不能由attr分配,这是元素创建的副作用。你需要一个htmldiv,所以你需要告诉d3,通过调用元素xhtml:div,一旦你这样做,d3会做剩下的。
var group = d3.select("#package");
var fo = group.append("foreignObject").attr("x", 15).attr("y", 15).attr("width", 190).attr("height", 90);
fo.append("xhtml:div").attr("style", "width:190px; height:90px; overflow-y:auto").text("Thiggfis the dgdexsgsggs wish to fit insidegssgsgs");
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<p id="p"></p>
<svg width="220" height="120" viewBox="0 0 220 120" id="package">
<rect x="10" y="10" width="200" height="100" fill="none" stroke="black"/>
</svg>
下面是一个用于将HTML标记插入SVG的foreignObject
的简单示例:
<svg width="220" height="120" viewBox="0 0 220 120">
<rect x="10" y="10" width="200" height="100" fill="none" stroke="black" />
<foreignObject x="15" y="15" width="190" height="90">
<div xmlns="http://www.w3.org/1999/xhtml" style="width:190px; height:90px; overflow-y:auto"><b>This</b> is the <i>text</i> I wish to fit inside <code>rect</code></div>
</foreignObject>
</svg>
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- jQuery匹配JSON对象的部分文本
- onkeyup无法动态创建多个文本区域
- 如何在下面的ES6循环中获得前面的文本
- 使用节点的文本文件中的 CSV.js(CSV 包)
- HTML 在客户端对输入类型文本(文本框)的内容进行编码(使用 Jquery 等)
- 在 Ajax 工具包 htmleditorextender 中设置按钮单击事件的文本
- 闪烁的文本和闭包
- 编辑文本文本区域Jquery
- 获取周围的JS闭包代码作为文本
- 获取没有子元素的父元素文本's文本
- Javascript动态创建span并垂直对齐文本:文本留在底部
- 基于文本框启用或禁用按钮.文本文本更改
- D3圆包:html文本属性
- 如何在D3圆包中匹配文本宽度和圆大小
- Ajax工具包文本编辑器子控件
- 验证表单替换文本文本区域