我来自 .NET 世界,需要关于 CSS 样式的建议:
我们实现了一个系统,让我们可以使用任何 SVG 编辑器设计 UI 小部件。例如,一个简单的播放按钮将有一个背景矩形和一个三角形。在这个小部件中,除了背景之外的所有元素都有pointer-events="none"
,以便背景接收所有鼠标事件。但是在将鼠标悬停在背景上时,我们也希望设置所有前景元素的样式。
假设有类.a
并且.b
所有元素都在同一级别。要在悬停时修改.a
,请编写:
.a:hover { stroke: red }
要.b
在鼠标悬停时进行修改,.a
请编写:
.a:hover ~ .b { stroke: red }
但是我怎么能同时做这两个呢?当然,一个人可以写这两个语句,但是当有另一个类时.c
呢?它是否也需要自己的声明,或者是否有类似的东西:
//fantasy code
.a:hover ~ (.a + .b + .c) { stroke: red }