css - 如何将SVG中的foreignObject元素带到顶层?

标签 css d3.js svg

我有一个定制版的D3 based family tree .唯一的区别是,我没有使用 rect 节点,而是选择使用 foreignObject。

我希望 foreignObjects 位于其他路径层的顶部,这样它们就不会重叠,但是正如您从下面链接的示例代码中看到的那样,我们仍然可以在 html 元素上方看到路径线。 基于谷歌搜索,我尝试的事情是更改文档顺序、select("selector").raise()、设置 z-index 和 block css 上的内联符号,但没有任何改变。谁能帮忙解决这个问题。

sample code

nodes.append("foreignObject")
    .attr("display", function(d) {
        if (d.hidden) {
            return "none";
        } else {
            return "";
        }
    })
    .attr("width", 50)
    .attr("height", 100)
    .attr("x", kx)
    .attr("y", ky)
    .append("xhtml:div")
    .attr("class", "node")
    .append("text")
    .text(function(d) {
        return d.name;
    })
    .attr("id", function(d) {
        return d.id;
    });

最佳答案

这里的问题与 z-index 或元素的顺序无关。问题是您没有填写 <div> s:你正在使用 fill在 CSS 中,但正确的填充方式是 <div>正在使用 background-colourbackground :

.node {
    background: white;
}

这是你的 JSFiddle 的变化:http://jsfiddle.net/jsoLg0n3/

关于css - 如何将SVG中的foreignObject元素带到顶层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57850710/

相关文章:

javascript - 如何使用切换按钮根据单击哪个按钮显示元素?

css - 我的图片在 IE 7.0 中没有悬停效果

html - 如何使用HTML5+CSS3验证来验证ZK Textbox?

CSS IE7 如何强制 LI 内的 UL 比父级宽

javascript - NVD3 lineChart - 填充线条上方的区域,而不是下方的区域

html - svg 不支持::之后

javascript - jquery .ready() 等同于 d3js?

javascript - 将鼠标悬停在图例上并悬停在 nvD3 中的路径效果上

css - SVG CSS 变换比例动画在 Safari 或 Firefox 上不起作用

css - 使用 CSS 为 SVG Sprite 制作动画