1

我能在这个 CSS 上得到一点帮助吗?在我的样式表中,我定义了我的锚颜色:

a:link {}
a:visited {}
a:hover {}

稍后在样式表中,我有一些在定义为跨度内的锚点:

span.logout {}
span.logout a:link, a:visited {}
span.logout a:hover {}

唯一的事情是,我在注销跨度中的锚颜色覆盖了我的主要锚颜色。我很困惑为什么会这样。我认为只有“注销”范围内的锚会受到这个 CSS 的影响。

无论如何,如果有人可以帮助解决这个问题,我将不胜感激。另外,我是否正确使用术语 CSS“子类”?

感谢您花时间阅读,祝您有美好的一天。:-)

4

2 回答 2

5

您的a:visited选择器是独立存在的,没有被span.logout选择器限定,因为逗号将它分开。换句话说,就好像你有两个这样的规则,具有相同的声明集:

span.logout a:link {}
a:visited {}

这具有覆盖您之前的a:visited规则的效果,即使对于span.logout.

您需要在逗号之后重复选择器,以使其仅在此类元素span.logout中生效:span

span.logout a:link, span.logout a:visited {}

CSS 没有“子类”的概念,因为所有类都被视为相同,但您在这里的使用似乎很好。我想“子类”一词在OOCSS之类的东西中会有更清晰的定义,但这只是一种 CSS 编码技术。

我将您的选择器称为上下文选择器,因为您仅将样式应用于元素上下文中的已访问链接span.logout(从技术上讲,空间分隔span.logouta:visited称为后代组合器)。

于 2012-11-14T16:35:33.100 回答
2

你需要改变:

span.logout a:link, a:visited {}

至:

span.logout a:link, span.logout a:visited {}

逗号分隔选择器,因此所有a:visited链接都以第二组样式为目标

于 2012-11-14T16:36:27.490 回答