【发布时间】:2012-02-13 17:39:46
【问题描述】:
我正在创建一个导航菜单,其中包含不同颜色的单词(href 链接)。我希望颜色在任何状态下都不会改变(悬停、访问等)。
我知道如何为不同的状态设置颜色,但我想知道保持文本颜色(以及任何其他样式/格式)不变的代码。
有什么建议吗?
【问题讨论】:
我正在创建一个导航菜单,其中包含不同颜色的单词(href 链接)。我希望颜色在任何状态下都不会改变(悬停、访问等)。
我知道如何为不同的状态设置颜色,但我想知道保持文本颜色(以及任何其他样式/格式)不变的代码。
有什么建议吗?
【问题讨论】:
如果您声明a.redLink{color:red;},则将其保持在悬停状态,并添加a.redLink:hover{color:red;} 这将确保没有其他悬停状态会改变链接的颜色
【讨论】:
您可以在样式表中使用a 选择器来定义锚点/超链接的所有状态。例如:
a {
color: blue;
}
将覆盖所有链接样式并将所有状态设为蓝色。
【讨论】:
您可以简单地为链接定义一个样式,它将覆盖a:hover、a:visited 等:
a {
color: blue;
text-decoration: none; /* no underline */
}
如果您想使用父样式的属性,也可以使用 inherit 值:
body {
color: blue;
}
a {
color: inherit; /* blue colors for links too */
text-decoration: inherit; /* no underline */
}
正如 Chris 在我之前所说的,应该覆盖 a。例如:
a { color:red; }
a:hover { color:blue; }
.nav a { color:green; }
在这种情况下,.nav a 将始终为绿色,:hover 不适用于它。
如果有其他规则影响它,你可以使用!important,但你不应该。这是一个坏习惯。
.nav a { color:green !important; } /*I'm a bad person and shouldn't use !important */
然后它将始终为绿色,与任何其他规则无关。
【讨论】:
a 设置样式,这将防止对:hover(或:visited 等)进行任何更改。您建议一个实际的解决方案,而不是成为一个混蛋并破坏所有三个答案怎么样?
属性值对:
a {
all: unset;
}
在我看来似乎更干净,并且具有适用于所有标签的优势。因此,它为您提供了一种更短的方法来处理其他标签,例如:
a, button /* &c... */ {
all: unset;
}
【讨论】: