我有一个<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
由于某种原因无效。
答案 0 :(得分:2)
问题不在于您的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>
答案 1 :(得分:0)
使用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-tricks