没有href属性的<a>如何添加样式

75

是否可以通过 CSS 匹配所有没有指定 href 的链接?

例如:

<a>Invalid link</a>

我知道可以使用href匹配所有链接,但我只是在寻找相反的情况。


1
请注意,“无效”在这里并不是指“无效的HTML”,而是指“无效的超链接”,意思是它实际上没有指向任何地方。 - BoltClock
1个回答

143

可以使用CSS3的:not()

a:not([href]) {
    /* Styles for anchors without href */
}

或者为所有的a指定一个通用样式,再为带有href属性的a指定一个覆盖通用样式的样式。

a {
    /* Styles for anchors with and without href */
}

a[href] {
    /* Styles for anchors with href, will override the above */
}

为了获得最好的浏览器支持(包括古老但未被遗忘的浏览器),请使用:link:visited伪类代替属性选择器(两者组合将与a[href]匹配相同):

a {} /* All anchors */
a:link, a:visited {} /* Override */

还可以参见此答案,深入解释了a[href]a:link, a:visited的区别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接