我很难为具有多个标签的节点设置属性。
我的 graphstyle.grass 文件如下所示:
node {
diameter: 40px;
color: #aaaaaa;
border-color: #888888;
border-width: 1.5px;
text-color-internal: #000000;
caption: '{name}';
font-size: 12px;
}
node.foo {
color: #aaaaff;
}
node.bar {
color: #aaffaa;
}
node.bar.a {
border-color: #ff0000;
}
node.bar.b {
border-color: #0000ff;
}
因此,这里的目的是,如果您有“bar”标签,则节点将以某种方式着色,如果您还有“a”或“b”的附加标签,则您的边框将被适当着色。我的 CSS 知识很薄弱,但我认为这就是传统上多类选择器的完成方式。
我在 Neo 2.0.1 浏览器图形显示中看到的行为是,如果一个节点有多个标签,它会选择第一个标签,尝试在gras 文件中查找 node.first_label 选择器(如果找不到)它只是为其添加了一个新的选择器。那么两个具体的例子:
- 如果有一个带有标签 ['bar','a'] 的节点(按此顺序),那么 Neo4j 将找到上面的 node.bar 选择器并使用它,而不对第二类执行任何操作。 a' 属性将不会被应用。
- 如果节点具有标签 ['a','bar'] (按此顺序),那么 Neo4j 将查找形式为 'node.a' 的选择器,并且不会调用上面的任何选择器,而是创建一个新的选择器一组默认参数。
非常感谢任何指导或建议。
这是一个非常明智的做法,也是正确的。从 Neo4j 2.0.1 开始,图形样式表还不够聪明,无法处理链式类选择器。选择的顺序(正如您所观察到的)也被破坏了。
update:从 2.2 开始,支持多个类选择器 https://github.com/neo4j/neo4j/pull/4092,只要你手动编辑草的定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)