为什么 .foo 选择器会覆盖链接样式规范?
CSS 根据特异性规则应用样式。在示例代码中,我们以相同的特异性 (0 0 1 1) 定义链接、已访问、悬停和活动状态。然而,.foo 选择器引入了一个具有稍高特异性的附加类 (0 0 2 1)。
覆盖机制
当具有不同特异性级别的多个选择器应用于相同的元素,具有最高特异性的选择器会覆盖较低特异性的选择器。这里,.foo a:link 和 .foo a:visited 比 a:hover 和 a:active 具有更高的特异性。
因此,.foo 选择器会覆盖链接和动态伪类选择器,导致链接无论应用其他样式如何,.foo 类都会显示为绿色。
可能修复
为了确保悬停状态覆盖 .foo 选择器,可以:
添加更具体的 .foo 选择器
通过添加另一个类来提高 .foo 选择器的特异性。例如:
.foo .link a:link, .foo .link a:visited { color: green; }
这确保 .link 类覆盖 .foo 选择器,从而允许悬停状态生效。
使用!重要声明
使用以下命令强制链接和悬停样式覆盖 .foo 选择器!重要声明:
a:link, a:visited { color: blue !important; }
这有效地“锁定”了颜色属性,防止其他选择器修改它。
以上是为什么类选择器会覆盖 CSS 中的链接伪类样式?的详细内容。更多信息请关注PHP中文网其他相关文章!