CSS 按使用的选择器的具体顺序工作,然后,如果两个选择器同样具体,则按最后的顺序。将您的 CSS 重新排序为:
.replyBtn {
background-color:#CCC;
color:#333333;
font-weight:bold;
padding:3px;
font-size:12px;
text-decoration:none;
}
.replyBtn:link {
background-color:#333;
color:#FFF;
font-weight:bold;
padding:3px;
font-size:12px;
}
.replyBtn:visited {
background-color:#CCC;
color:#333333;
font-weight:bold;
padding:3px;
font-size:12px;
}
.replyBtn:hover {
background-color:#333;
color:#FFFFFF;
font-weight:bold;
padding:3px;
font-size:12px;
text-decoration:none;
}
.replyBtn:active {
background-color:#CCC;
color:#333333;
font-weight:bold;
padding:3px;
font-size:12px;
}
我会指出,您似乎正在.replyBtn
使用默认设置元素的样式,然后在您的.replyBtn:link
样式中覆盖这些默认设置。我意识到您可能有其他具有相同类名的元素类型,但您应该在 中定义a
/link-specific 样式,因此它形成所有这些链接.replyBtn:link
的默认值:
.replyBtn:link {
text-decoration: none;
background-color:#333;
color:#FFF;
font-weight:bold;
padding:3px;
font-size:12px;
}
/* all the other stuff... */
针对评论中留下的评论进行编辑,来自 OP:
试试这个:jsfiddle.net/CTxQs。
好吧,假设您的 HTML 标记是:
<div class="replyBtn"><a href="#btn_comment">Reply</a></div>
你的 CSS 是错误的。这个选择器:
.replyBtn:link {
}
选择作为链接的类名元素replyBtn
;如果您的a
元素具有.replyBtn
. 但事实并非如此;该a
元素是该元素的子元素.replyBtn
div
。将您的选择器修改为以下内容:
.replyBtn { /* selects the div */
background-color:#CCC;
color:#333333;
font-weight:bold;
padding:3px;
font-size:12px;
text-decoration:none;
}
.replyBtn a:link { /* selects the a that's a child of the div */
background-color:#333;
color:#FFF;
font-weight:bold;
padding:3px;
font-size:12px;
text-decoration:none;
}
.replyBtn a:visited {
background-color:#CCC;
color:#333333;
font-weight:bold;
padding:3px;
font-size:12px;
}
.replyBtn a:hover {
background-color:#333;
color:#FFFFFF;
font-weight:bold;
padding:3px;
font-size:12px;
text-decoration:none;
}
.replyBtn a:active {
background-color:#CCC;
color:#333333;
font-weight:bold;
padding:3px;
font-size:12px;
}
JS 小提琴演示。
进一步阅读,来自 Eric Meyer: