css - 如何将SVG中的foreignObject元素带到顶层?
问题描述
我有一个基于 D3 的家庭树的定制版本。唯一的区别是,我选择使用foreignObject,而不是使用矩形节点。
我希望 foreignObjects 位于其他路径层的顶部,这样它们就不会重叠,但是正如您从下面链接的示例代码中看到的那样,我们仍然可以看到 html 元素上方的路径线。根据谷歌搜索,我尝试更改文档顺序、select("selector").raise()、设置 z-index 和在 css 上阻止内联表示法,但没有任何改变。任何人都可以帮助解决这个问题。
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 索引或元素的顺序无关。问题是您没有填写<div>
s: 您fill
在 CSS 中使用,但填写的正确方法<div>
是使用background-colour
or background
:
.node {
background: white;
}
这是您的 JSFiddle 更改:http: //jsfiddle.net/jsoLg0n3/
推荐阅读
- javascript - Vue中如何控制多个复选框
- oracle - PL/SQL 根据动态表名创建视图
- google-apps-script - 需要使用应用程序脚本从 Monthwise 到 datewise 对日期进行排序
- flutter - Flutter ios无法构建
- amazon-web-services - 如何使用 AWS athena 在特定事件之前和之后提取时间序列数据?
- reactjs - Nx.dev Gatsby 在插件 gatsby-plugin-translate-urls 中抛出错误 - 不支持实验性语法“jsx”
- google-cloud-platform - BigQuery 自动检测架构问题 int64 与 float64
- intellij-idea - IntelliJ 中是否还有其他用于 Java VM 系统属性的设置?
- c# - asp net core 返回具有空属性的json(非空)
- firebase - redirect_uri_mismatch - 没有更新 URL 的可能性