CSS-目标文本链接在悬停时带有底部边框,但图像链接没有边框

标签 css

我希望能够在悬停时使用 border-bottom 定位 CSS 中的文本链接, 但所有图片链接都没有悬停边框。所以:

<a href="#"><img src="image.png"  /></a>  ==> this should not have a bottom-border on hover
<a href="#">regular text link</a> ==> this should have a bottom-border on hover

我试过这个 CSS:

#sidebar a:hover {
  border-bottom: 1px dotted red;
}
#sidebar a:hover img {
  border-bottom: none;
}

但这行不通……我认为 anchor 必须是有针对性的而不是图像。我一直在谷歌周围搜索,似乎没有人知道如何做到这一点,除非通过使用特定类或 id 定位图像链接,或者使用 display:block。

但是,我不能使用这些解决方案,因为内容在 CMS 中,所以我不希望用户必须为他们插入的每个图像分配一个类。并且 display:block 不起作用,因为我不知道这是否适合用户想要显示的每张图像。

最后,我希望能够使用纯 CSS(无 Javascript)来完成此操作。也许没有办法...但是如果您有任何帮助或想法,我们将不胜感激!

最佳答案

就 JavaScript 而言,我建议使用 jQuery向所有包含图像的链接添加一个类:

$('#sidebar a:has(img)').addClass('image-link');

(:has 选择器是 jQuery 的东西;它不存在于 CSS 中。)

然后相应地调整您的样式表。

#sidebar a:hover {
  border-bottom: 1px dotted red;
}
#sidebar a.image-link:hover {
  border-bottom: none;
}

关于CSS-目标文本链接在悬停时带有底部边框,但图像链接没有边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/794677/

相关文章:

html - 到边界过渡不会到来

javascript - 具有多种文本颜色的 Div

css - 如何制作固定大小的div而不考虑内容

html - 内部 div 弹出布局

html - 我如何垂直居中 ul 中的 li 元素? CSS

php - float div,像行一样对待

css - 额外的粗体字体在 Chrome 中显示为常规粗体

html - 箭头向外边框

css - IE8 first-child 动态元素伪类

javascript - 如何通过 JavaScript 重新触发 WebKit CSS 动画?