css - 与目标 ="_blank"的链接仍然受到伪类 :hover styles after user clicked on it, 的影响,仅限 Chrome

标签 css google-chrome

在用户点击带有 target="_blank"链接的链接打开第二个选项卡后,用户决定返回到用户来自当前链接的前一个页面(第一个选项卡)。

直到用户不会将光标拖动到文档(页面)本身,:hover 样式效果仍然存在。

Here是简单的代码示例:

.wrapper {
  position: relative;
}

.wrapper:hover .tooltip {
  transition: 'opacity 0.5s step-end';
  opacity: 1;
}

.tooltip {
  position: absolute;
  height: 20px;
  background-color: black;
  opacity: 0;
  color: white;
  padding: 5px 10px;
  border-radius: 5px;
  opacity: 0;
}
<div class="wrapper">
  <a target="_blank" href="https://www.google.com/">Google</a>
  <div class="tooltip">
    Tooltip
  </div>
</div>

实际上代码可以更简单,我刚刚在上面描述了我的案例,here是一个更基本的例子:

a:hover {
  background-color: red;
}
<a href="https://www.google.com" target="_blank">Google</a>

这只发生在 Chrome (84.0.4147.125) 中。为了让您更容易理解问题,我做了 screen-recording .也可能仅在 macOS 中发生,未在 Windows/Linux 上检查。

是否有可能以某种方式修复它并使其像其他浏览器一样工作?切换标签页后,:hover 效果立即消失,无需等待用户将光标移动到页面。

最佳答案

解决方法是在 anchor 上使用 :not(:focus) 选择器:

a:hover:not(:focus) {
  background-color: red;
}
<a href="https://www.google.com" target="_blank">Google</a>

检查 jsfiddle查看工作示例。

关于css - 与目标 ="_blank"的链接仍然受到伪类 :hover styles after user clicked on it, 的影响,仅限 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63419727/

相关文章:

css - 即使文本修饰设置为无,链接仍然带有下划线

html - 这个 CSS 片段的目的是什么?

javascript - Chrome 中的原生延迟加载

android - 响应式设计不适用于 Android?

css - 如何显示 Bourbon Neat 网格的列?

html - 无法在页脚中设置背景颜色

eclipse - 如何让 Flash Builder 在新的浏览器窗口中调试 SWF?

css - 没有 'controls' 的音频元素在 Chrome 中消失

javascript - Chrome 的 JavaScript 控制台是否懒惰评估对象?

html - 媒体查询适用于 chrome,但 firefox 选择了错误的分辨率/查询