css - 删除 :hover on :after elements

标签 css

我正在尝试删除链接的 :after 伪选择器中的 :hover 行为。但我认为这是不可能的。

a {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-style: italic;
  font-size: 12px;
  color: #666;
  text-decoration: none
}

a:after {
  content: "·";
  margin: 0 2px 0 6px
}

a:hover {
  text-decoration: underline
}

a:hover:after {
  text-decoration: none
}
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>

检查 JsFiddle .

这可能吗?

最佳答案

处理这个问题的最简单方法是在每个链接的文本周围包裹一个 span:

<a href="#"><span>test</span></a>

:hover 上只给出 span text-decoration: underline:

a:hover span {text-decoration: underline}

参见: http://jsfiddle.net/thirtydot/3N9vs/27/

一个类似的旧问题:Cannot undo text-decoration for child-elements
也相关:CSS text-decoration property cannot be overridden by child element

关于css - 删除 :hover on :after elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122213/

相关文章:

html - 绝对定位的子 div 离开父 div

html - 如何居中导航栏元素? (有反应地)

css - 分解 Sprite 图像的简单工具?

jquery: addClass, removeClass: 动画只工作一次:为什么?

javascript - 使用 JavaScript 覆盖@media 样式

css - 为 div 元素合并两个 css 类

html - 包裹时均匀分布 flex 元素

asp.net - 为 ASP.NET 输入按钮使用 CSS 按钮样式?

html - 在悬停显示 div 时,从主 div 底部开始定位

html - CSS 中 SVG 的垂直对齐