html - 可以使用逗号将带有子类的 CSS 声明应用于多个类吗?

标签 html css browser

我目前有不同的 CSS 类,但它们适用于具有同一类 (ChildClass) 的子元素的元素。我想在父类处于事件状态时更改子类的不透明度。现在我正在用许多 CSS 声明来做这件事(见下面的例子)。这可以用一个声明来完成吗?

当前 CSS

.class1 {
    ...elided...
}

.class2 {
    ...elided...
}

.class1:active .ChildClass {
    ...elided...
}

.class2:active .ChildClass {
    ...elided...
}

对于两者,子类的变化是相同的。我可以做这样的事情吗?

我想做什么

.class1:active,class2:active .ChildClass {
    ...elided...
}

那行得通吗?浏览器对此有何支持?

最佳答案

不,您需要在每个逗号分隔的部分中放置完整的选择器字符串,因此您需要:

.class1:active .ChildClass, class2:active .ChildClass {
    ...elided...
}

您之前使用它的方式是针对 .class1:active.class2:active .ChildClass 而不是每个的 .ChildClass。逗号分隔完整的选择器字符串,没有缩写 - 如果您考虑一下,这是有道理的,因为对于复杂的选择器,CSS 无法知道缩写“快捷方式”从哪里开始。

如果您对速记 CSS 或其他在输入复杂选择器时节省时间和精力的方法感兴趣,我建议您研究一下 SASS 或其他预处理器(LESS、Stylus 等)。

关于html - 可以使用逗号将带有子类的 CSS 声明应用于多个类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19549346/

相关文章:

html - 覆盖跨度样式

c# - Wpf控件显示html代码

html - (Coda) slider 未填充 100% 的浏览器窗口

javascript - 在HTML5 Canvas 上慢慢绘制二次曲线

javascript - 模态背景淡入淡出问题与 Bootstrap 模态

javascript - 调整 html 表格列的大小 (TD)

html - 两个图像和两个文本行对齐

browser - 浏览器编辑控件中的 Tab 键行为

javascript - Puppeteer 仅用于 chrome 浏览器吗?

c# - 从浏览器启动应用程序