:active
可以改变颜色,但只有在用户仍按住鼠标时才有效。
例如:
黑色(单击)> 蓝色(释放)> 黑色
相反,我需要:
黑色(单击)> 蓝色(释放)> 蓝色
是否有一种使用CSS实现这个效果的方法?编辑:我应该提到我不想让浏览器渲染已访问的链接,所以我不能使用:visited
。
:active
可以改变颜色,但只有在用户仍按住鼠标时才有效。
例如:
黑色(单击)> 蓝色(释放)> 黑色
相反,我需要:
黑色(单击)> 蓝色(释放)> 蓝色
是否有一种使用CSS实现这个效果的方法?编辑:我应该提到我不想让浏览器渲染已访问的链接,所以我不能使用:visited
。
使用 :visited 来设置已访问链接的颜色。
您可以使用tabindex
属性和:focus
选择器的组合来处理锚点元素。
<a href="#" tabindex="1">Stays blue</a>
a {
color: black;
}
a:active {
color: blue;
}
a[tabindex]:focus {
color:blue;
outline: none;
}
tabindex
属性才能使其工作。 - thgaskellhttp://www.w3schools.com/css/css_link.asp希望这可以帮到您 ^.^.
将已访问/未访问的颜色设置为相同。
<!DOCTYPE html>
<html>
<head>
<style>
a:link {color:#000000;} /* unvisited link is black*/
a:visited {color:#000000;} /* visited link is black (reverse the color back to black)*/
a:hover {color:#0000FF;} /* mouse over link (blue when mouse over)*/
a:active {color:#0000FF;} /* selected link (blue in the split second which you loading the page.)*/
</style>
</head>
<body>
<p><b><a href="http://google.com">This is a link</a></b></p>
<p><b>Note:</b> a:hover MUST come after a:link and a:visited in the CSS
definition in order to be effective.</p>
<p><b>Note:</b> a:active MUST come after a:hover in the CSS definition in order
to be effective.</p>
</body>
</html>
所有这些都应该是蓝色的。由于您不希望浏览器记住已访问的链接,我认为这将是一个更加复杂的答案,因为您想改变浏览器的工作方式。
.changeable
然后,您可以像这样使用JavaScript:var links = document.getElementsByClassName('changeable');
function changeColorToRed(e) {
e.target.style.color = e.target.style.color ? null : 'red';
}
for (var i = 0; i < links.length; i++) {
links[i].addEventListener('click', changeColorToRed);
}
以及HTML代码:
<a class="changeable">Change me</a>
这里是一个实时的示例