0

我已经基于 db 数据创建了一个带有 d3 的 svg,效果很好。但是在放大时,已绘制的元素超出了 svg。我想创建一个剪贴路径来防止这种情况,它适用于 Chrome 和 Safari,但在 Firefox 中事情变得很奇怪:

clip-path 属性应用于 a 的子元素<g>(使用url(#[id of <clippath>])值)。当我在 Firefox 中使用 Inspector 在此级别手动应用相同的剪辑路径属性时,它似乎工作正常,但由于某种原因它没有从我的样式表中读取它。(另外,请注意,Firefox 确实识别出应用于样式表中元素的属性 - 它并没有将其划掉或其他任何东西 - 它似乎并不在意!)

我不能改用溢出属性,因为出于其他原因我需要它可见。

我的 CSS:

#sectionID g.groupClass1 elements,
#sectionID g.groupClass2 elements,{
    clip-path: url(#clip);
}

我的 JS:

svgSelector.append("defs").append("clipPath")
.attr("id","clip")
.append("rect")
.attr("x", 0)
.attr("y", 0)
.attr("width", 500)
.attr("height", 500);

我也试过没有<defs>,这没有任何区别。

有任何想法吗?

如果有帮助,我也会尝试设置一个小提琴。

4

1 回答 1

1

好像我想通了。我不知道为什么,但clip-path似乎只能作为 Firefox 中的元素属性(与样式属性相比) - 至少对于我的 SVG 元素。

即,当我从

<g style="clip-path:url(#clip)">

类似于

<g clip-path="url(#clip)">
于 2015-06-01T23:07:10.533 回答