是否可以在SVG元素中附加div?

sam*_*sam 39 html javascript jquery svg

我试图在SVG中附加一个HTML div,我试图创建一个图形.我试图使用下面的代码附加它,但是当我使用Firebug检查元素时,div显示在rect元素代码中,但它没有显示在图形UI中.

我正在尝试的方法是否有问题,或者是否无法在SVG中附加div?

    marker.append("rect")
   .attr("width", "50px")
   .attr("height", "50px")
   .append("div")
   .attr("id", function(d) {
      return "canvas_" + d.key.split(" ").join("_");
   })
   .style("width", "50px").style("height", "50px");
Run Code Online (Sandbox Code Playgroud)

met*_*ion 59

你不能将HTML附加到SVG(技术上你可以使用foreignObject,但它是一个兔子洞).此外,在SVG可见元素不能嵌套,所以元素,例如circle,rect,path和这样不能生育的元素.

  • 请记住,如果您需要跨浏览器兼容性,`foreignObject`在IE中不起作用. (4认同)
  • 感谢您推荐foreignObject !! 有效 (2认同)

Kar*_*kas 28

我也会考虑使用<g>元素,因为它<div>通过分组对象起到类似的作用.更多关于它的信息.


Ana*_*ria 5

您试图在同一行中附加“ rect”和“ div”。可能就是您失败的地方。签出D3的这些语言。这是一个基于SVG的令人惊叹的库 http://alignedleft.com/tutorials/d3/drawing-svgs/

  • 查看这些教程。我可以向您保证,您将学到更多,而不仅仅是SVG ... (3认同)