gpt4 book ai didi

CSS :link and :visited pseudo-classes - are web browsers adhering to the spec?

转载 作者:技术小花猫 更新时间:2023-10-29 10:38:54 25 4
gpt4 key购买 nike

W3.org CSS specification陈述如下(强调我的):

  • The :link pseudo-class applies for links that have not yet been visited.
  • The :visited pseudo-class applies once the link has been visited by the user.

The two states are mutually exclusive.

这意味着应用于 :link 选择器的任何样式都应该只应用于未访问的链接。但是,唯一符合这一点的属性似乎是 color。将字体大小、背景等应用到 :link 选择器以所有链接为目标。

页面下方有一条说明:

Note. It is possible for style sheet authors to abuse the :link and :visited pseudo-classes to determine which sites a user has visited without the user's consent.

UAs may therefore treat all links as unvisited links, or implement other measures to preserve the user's privacy while rendering visited and unvisited links differently.

但是,据我所知,这仅适用于 Javascript 返回的样式,不适用于样式本身的显示。

Here's a JS fiddle显示问题。浏览器是否偏离了此处的规范,还是我遗漏了什么?

最佳答案

这条线,

"UAs may therefore treat all links as unvisited links, or implement other measures to preserve the user's privacy while rendering visited and unvisited links differently."

不适用于仅由 JavaScript 返回的样式——正如它听起来的那样。这意味着浏览器可能会完全忽略 :visited 上的某些属性(这就是本例中发生的情况)。由于 font-size 会增加包含元素的大小,允许 :visited 链接的属性不同会破坏浏览器实现的其他安全措施。

如果需要,浏览器可以选择在不应用 :visited 样式的情况下重新计算尺寸。自然地,与仅仅禁止某些属性相比,这需要更多的工作并且性能更差。很明显,这个决定是基于这样一个事实,即没有真正需要使用不同的字体大小、背景等来区分已访问和未访问的链接,而且通常,大多数开发人员会坚持只稍微修改颜色。

所以不,他们没有偏离规范,他们正在利用允许的异常(exception)。

关于CSS :link and :visited pseudo-classes - are web browsers adhering to the spec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7792010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com