我有一个 SVG 图,想在另一个元素:hover
中的一个元素上应用属性<rect>
。但它不起作用:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="svg">
<style type="text/css"><![CDATA[
#rec1 {
fill:black; // outer element
}
#rec2 {
fill:white; // inner element
display:none; // and element not visible
}
#rec1:hover #rec2 {
display:block; // when hover outer lets inner become visible
// but it doesn't work
}
#rec1:hover {
fill:red; // strange but this hover works
}
]]></style>
<g id="g">
<rect id="rec1" x="0" y="0" width="200" height="50" />
<rect id="rec2" x="100" y="20" width="20" height="20" />
</g>
</svg>
在这种情况下应用悬停的正确方法是什么?
UPD:找到一个解决方案。
首先,它不是另一个<rect>
元素中的一个元素。他们是兄弟姐妹。并且就这种样式#rec1:hover #rec2
仅适用于嵌套元素而言,它在这里不起作用。所以我在最外面的<g>
元素上应用了样式:
#g:hover #rec2 {
display:block; // it works just fine
}
但是还有其他方法可以解决这个问题吗?