当我将鼠标悬停在访问的链接上时, colored颜色 会正确变化,但背景 colored颜色 不会.我注意到这可以通过为a设置背景 colored颜色 来修复,但为什么会这样?

a {
  text-decoration: none;
  color: inherit;
}

.link-1:visited,
.link-2:visited {
  color: violet;
}

.link-2 {
  background-color: yellow;
}

.link-1:visited:hover {
  color: cyan;
  background-color: orange;
}

.link-2:visited:hover {
  color: cyan;
  background-color: orange;
}
<a href="https://stackoverflow.com" class="link-1">Link 1, without inital bg</a>
<br/>
<a href="https://stackoverflow.com" class="link-2">Link 2, with initial bg</a>

推荐答案

这种情况是有原因的:

如果链接已将这些属性设置为"未访问"或:链接状态,则只能使用:Visuted来更改这些属性.您不能使用它来添加链接上不存在的属性.例如: 如果链接元素已经有了背景色,则可以更改:vised链接的背景色. 如果:已访问链接是"未访问"链接时没有背景 colored颜色 ,则不能为该链接添加背景 colored颜色 .

https://css-tricks.com/almanac/selectors/v/visited/

Css相关问答推荐

为什么我不能编辑垫按钮填充?

VueJS3+Vutify中缺少一些CSS类

SVG文本在移动浏览器上增长并溢出

如何在CSS中创建水平/垂直对称的虚线边框?

将CSS栅格行高设置为其余视口高度

如何将CSS动画从第一列移动到第二列?

CSS 不要 Select 包含混合内容的 div 中的第一个元素

从 React MUI 自定义不同组件的正确方法?

Mat table - 保留第一列和复选框

清除 CSS 中已设置的填充属性以恢复 SVG 的默认值

CSS 媒体查询不为桌面版的圣杯响应式布局包装 Flexbox 容器元素

zoom 时闪烁的背景滤镜模糊

全部:初始与使用 CSS 重置

为什么我们将