我有一个href,它有以下代码。
.calculate:active {
background-color: red;
}
.calculate:hover {
background-color: green;
}

<li class="calculate">
<a href="calculate.html" style="font-size:18px">Calculator</a>
</li>
&#13;
当我按住计算器链接上的单击按钮时,它会将颜色更改为红色,当我释放单击时,它会返回绿色,然后页面加载到指定的calculate.html。当页面加载时,计算href的颜色变为红色。现在的问题是,当我保持点击按下href它变为红色,当我实际点击它然后它变回绿色并等待页面加载并变回红色。我希望它不要回到绿色,只有在点击它时才会变成红色。
答案 0 :(得分:1)
:hover
应在:active
之前定义,而不是之后。另外,在链接上使用这些伪类,而不是在列表项上使用。
.calculate a:hover{
background-color:green;
}
.calculate a:active{
background-color:red;
}
如果您想在点击它之后将其变为红色,请使用:visited
。 :active
仅在您点击它时将其设为红色。必须在:visited
类之前添加:hover
伪类。
[编辑]
在你的评论之后,我理解你的意思。您说在链接页面加载之前,您在点击之后立即从红色转换为绿色。除非您使:hover
和:active
的样式相等,否则您将始终看到此转换。
答案 1 :(得分:0)
如果我理解正确,您希望点击后链接保持红色。为此,您可以添加CSS类,如下所示:
var link = document.querySelector(".calculate");
link.onclick = function(){
this.classList.add("clicked");
}
&#13;
.calculate:active {
background-color: red;
}
.calculate:hover {
background-color: green;
}
.calculate.clicked {
background-color: red;
}
&#13;
<li class="calculate">
<a href="#" >Calculator</a>
</li>
&#13;