为什么在类应该覆盖链接样式时需要 !important ?

问题描述 投票:0回答:1

我正在尝试为页内导航创建可重用的样式。有一个默认样式,通过 ID 分配给封闭的

css css-selectors
1个回答
0
投票

因为

#page-nav a
(和
#page-nav a:hover
)由于使用了
id
而在CSS规则中具有更高的优先级。因此,
a.pageNavAlt:hover
are 中的样式已被应用,但被
#page-nav a:hover
中的样式所推翻。

您可以将

id
选择器添加到其他样式中:

#page-nav a {
    border: 2px solid black;
    border-radius: .3rem;
    padding: .25rem .5rem;
    line-height: 2.25;
    text-decoration: none;
    font-weight: 700;
    color: black;
}
#page-nav a:hover {
    background-color: black;
    color: white;
}
#page-nav a.pageNavAlt:link { /* <-- here */
    background-color: black;
    color: red;
}
#page-nav a.pageNavAlt:hover {  /* <-- and here */
    background-color: darkred;
    color: yellow;
}
<nav id="page-nav">
    <a class="pageNavAlt" href="#">Alternate link</a> <a href="#">Standard link 1</a> <a href="#">Standard link 2</a>
</nav>

© www.soinside.com 2019 - 2024. All rights reserved.