我有一个<a href>
链接:
<table class='hello'>
<tr>
<td><a href = 'javascript:void(0);' onClick=window.open('helloworld.php')></a></td>
</tr>
</table>
我尝试过的CSS(没有工作):
.hello tr td a.selected {
color: #F2F2F2;
}
和
.hello tr td a:visited {
color: #F2F2F2;
}
我知道层次结构:.hello tr td a.
是正确的,如下所示:
.hello tr td a:hover {
color: #F2F2F2;
}
当我选择链接时,一个弹出窗口打开,但是,我希望原始页面上的链接被突出显示(因此,如果用户返回到原始页面,他/她将知道被选中了什么)。
然而,我只能让:active
和:hover
工作。
.selected
或:visited
不工作的原因
问题不在于你的CSS。这是href
目标。如果你输入href='javascript:...'
,超链接将永远不会被认为访问过,因此颜色将永远不会改变。
改变你的<a>
标签为:
<a href='helloworld.php'>Hello world</a>
onclick
处理程序是不必要的。
OP澄清了目标必须以弹出式打开,带参数,不要使用表单。
要使它成为一个弹出,添加target='_blank'
。根据需要修改href
以传递所需的参数。
<a href='helloworld.php?param1=goodbye¶m2=world' target='_blank'>Hello world</a>
使用href = 'javascript:void(0);'
会导致你的问题。
:visited
选择器依赖于href
属性来判断链接是否已被访问。此外,.selected
是一个类,所以除非你在点击它之后将它添加到链接中,否则它将不适用。
查看DEMO
另外,CSS中样式的顺序也很重要:
a:visited { ... }
a:hover { ... } // if active is not after hover, the hover style
a:active { ... } // will override the active style during mousedown
参考:css技巧