CSS:代码中设置的样式类组合与用户操作应用的问题,想要限制子类



我有两种类型的样式可以应用于链接:

  • 出现在页面正文中的链接将始终具有蓝色悬停(该部分使用"linkColors"类,如<p class='contactInfo'>(
  • 出现在标题中的链接具有不同的背景颜色:当页面加载时,它们将以黄色悬停开头,然后当用户向下滚动(并且背景消失(时,我们希望像其他链接一样使用蓝色悬停。(该部分使用"Header-linkColors"类,并且我们为不同的颜色提供了"未滚动"子类(。我有javascript,可以根据用户是否滚动来添加/删除"未滚动"类。

我的样式表是这样的:

.linkColors a:hover,
.linkColors a:focus {
color: blue !important;
text-decoration: none !important;
}
.Header-linkColors a:hover,
.Header-linkColors a:focus {
color: blue !important;
text-decoration: none;
}
.unscrolled a:hover,
.unscrolled a:focus {
color: yellow !important;
text-decoration: none;
}

我将类名应用于段落,如<p class='contactInfo'>,如前所述,我有 javascript 也将基于用户行为的"未滚动"类应用于顶部节点:<html class='unscrolled'>.

我希望"未滚动"类仅在添加到带有 .Header-linkColors 类,而不是 linkColors 类。但是,对于上面的代码,"未滚动"子类甚至对于使用类"linkColors"(朝向内容顶部,在任何滚动之前可见(的部分中的链接也会生效:它们从黄色悬停开始,并且仅在我滚动后才使用蓝色悬停。从浏览器检查元素,它具有类"linkColors",以及预期的"未滚动"。

在另一次尝试中,我明确定义了".Header-linkColors .unscrolled"和".linkColors .unscrolled"具有自己的悬停颜色,但是当我检查UI中的元素时,这些样式无法识别(可能基于"未滚动"的应用方式不同(。我是CSS的新手,所以我有一种预感,我误解了它应该如何工作。

保持"未滚动"样式仅对使用"Header-linkColors"类的链接生效的正确方法是什么?

你应该发布你的html代码;文档的结构在css中很重要。

我认为正在发生的事情是:空格是css中的一个运算符;这意味着你在与选择器匹配的元素中进行选择。通过使用它(.class1 .class2(,您将在具有第一类的元素中选择具有第二类的元素。通过省略它(.class1.class2(,您将选择具有两个类的元素。

.Header-linkColors.unscrolled a:hover,
.Header-linkColors.unscrolled a:focus {
color: yellow !important;
text-decoration: none;
}

但我可能错误地理解了你的html:例如,如果<a>元素是所有类的元素,那么你就需要element.class1.class2:pseudoclass

最新更新