Chrome 为什么不能在:visited中设置CSS变量,而在:hover中设置CSS变量?

a5g8bdjr  于 2022-12-06  发布在  Go
关注(0)|答案(2)|浏览(143)

为什么大多数现代浏览器(Firefox除外)不支持在a:visited中设置CSS变量?
这在基于Chromium的浏览器、Safari等中不起作用:

a:visited {
  --bg-color: red;
}

但所有浏览器都支持在a:hover中设置变量:

a:hover {
  --bg-color: red;
}

下面是一个演示:https://codepen.io/mamiu/pen/YzvXXqw

h79rfbju

h79rfbju1#

Chrome禁用了 :visited 的css,除非它只是为了颜色改变。
像这样...

a { 
background-color: grey;
}

a:visited {
background-color: green;
}
j1dl9f46

j1dl9f462#

正如@Tybo所指出的,出于隐私原因,这是行不通的。
解决方案是简单地链接CSS选择器并直接更改CSS属性,而不是使用变量。

a:visited span.some-child-element {
  background-color: red;
}

我还更新了演示:https://codepen.io/mamiu/pen/YzvXXqw

相关问题