【问题标题】:Firefox 4 not rendering a:visited::before (except color)Firefox 4 不呈现 a:visited::before (颜色除外)
【发布时间】:2011-08-15 21:32:36
【问题描述】:

我正在为 Firefox 4 中的特定网站制作自定义样式表。在其中,我试图在我访问过的链接前加上红色的“x”。现在,当我说制作时,我的意思是它曾经在不久前工作过,并且在某些时候,这些 'x' 停止出现(尽管样式表的其余部分工作正常)。

现在,a:before(和 a::before,根据 CSS3)可以正常工作。 a:visited 工作正常。 a:visited:before 和 a:visited::before 都不起作用(嗯,几乎)。

在我的游戏测试期间,我离开了 a::before,但我的 a:visited::before 声明仍然使用红色的“x”。对于未访问的链接,a::before 内容是相同的文本颜色,但对于已访问的链接,::before 内容是“正确”颜色(红色)。

这里是 CSS 的一个 pastebin: http://pastebin.com/6Tzy1Q87

下面是 CSS 生成的屏幕截图: http://i.stack.imgur.com/rtw9L.png

请注意,a::before 只是将内容指定为复选标记。 a:visited::before 应该改变权重、颜色和内容,但只改变颜色。

我听说最近有一个关于 Firefox 和页面历史的安全“功能”,但据我了解,这也会影响常规的 a:visited 选择器。

【问题讨论】:

    标签: css firefox


    【解决方案1】:

    包括:visited 在内的选择器只允许在Firefox 4 中更改颜色,是的。无论是否涉及::before,这都适用。见http://dbaron.org/mozilla/visited-privacy

    我很想知道你有什么 CSS 可以让你使用 :visited 改变颜色以外的东西。

    【讨论】:

    • 很遗憾,除了颜色之外,我无法更改任何内容。不过,有趣的是,我有a::before,然后是a:visited::before,最后是a:hover::beforea::before 设置为“不可见”颜色(父元素的背景颜色),:visited 设置为红色,:hover 设置为黑色。 :hover 实际上只是将未访问的链接的::before 更改为黑色;已访问链接的::before 悬停时保持红色。
    • 这样吗? <!DOCTYPE html> <style> a::before { background: white; content: "here" } a:visited::before { background: red; } a:hover::before { background: black; } </style> <a href="http://nosuchhost.com"></a> <a href=""></a>这对我来说似乎很好。
    • ——我在自己的主机上制作了一个示例页面,你说得对,它确实有效。我正在制作一个通过插件导入的自定义工作表,该工作表用于一个极其糟糕、令人费解的页面,因此我必须在 DOM 中进行一些调查。仍然不喜欢这个“安全”功能的其余部分,或者至少无法启用 CSS 合规性。
    • 嗯,这个功能的重点是不要让您访问的任何网站发现您访问过的其他网站。这是一项隐私功能,而不是安全功能。至于合规性,CSS2.1 候选推荐部分 5.11.2 表示“UA 可能因此将所有链接视为未访问的链接,或实施其他措施来保护用户的隐私,同时以不同的方式呈现已访问和未访问的链接。”
    猜你喜欢
    • 2014-04-24
    • 2017-12-04
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多