CSS - 所选链接不保持颜色

时间:2014-08-05 20:11:51

标签: html css

我有一个<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由于某种原因无效。

2 个答案:

答案 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&param2=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