【发布时间】:2013-07-12 09:27:50
【问题描述】:
我来自 .NET 世界,需要关于 CSS 样式的建议:
我们实现了一个系统,让我们可以使用任何 SVG 编辑器设计 UI 小部件。例如,一个简单的播放按钮将有一个背景矩形和一个三角形。在这个小部件中,除背景之外的所有元素都有pointer-events="none",以便背景接收所有鼠标事件。但是在将鼠标悬停在背景上时,我们也希望设置所有前景元素的样式。
假设有 .a 和 .b 类,并且所有元素都在同一级别。要在悬停时修改.a,请编写:
.a:hover { stroke: red }
当鼠标悬停在.a 上时修改.b 你写:
.a:hover ~ .b { stroke: red }
但是我怎样才能同时做到这两个呢?当然两个语句都可以写,但是当有另一个类.c 时呢?它是否也需要自己的声明,或者是否有类似的东西:
//fantasy code
.a:hover ~ (.a + .b + .c) { stroke: red }
【问题讨论】:
-
它很相似,但我不会称它为重复项,因为我的所有元素都在同一级别上。我将添加更多上下文。
-
完全一样的修复,不管他们是否在不同的级别上
-
另一个问题的接受答案仅在元素处于同一级别时才有效。它不适用于 OP 的问题:“我在 div 中有一个 div 结构,类似于:”。人们搜索的是问题,而不是答案。
-
抱歉,我本来是想发this link。我的坏
标签: javascript html css svg