有没有办法将“a”标签链接取消设置为默认颜色

Posted

技术标签:

【中文标题】有没有办法将“a”标签链接取消设置为默认颜色【英文标题】:Is there a way to unset an 'a' tag link to the default color 【发布时间】:2020-12-30 03:25:14 【问题描述】:

我有一个“a”标签,它是指向另一个网页的普通链接。

我想禁用默认链接外观,除非鼠标光标悬停在链接上,此时应该恢复默认的正常链接外观。

这是我迄今为止尝试过的:

(html)

   <a href="example.com">example</a>

(CSS)

a 
    color: #000;
    text-decoration: none;


a:hover 
    color: unset;
    text-decoration: underline;

JS fiddle example of that code here

问题是在鼠标悬停期间链接颜色保持黑色,并且不会取消设置或恢复为原始链接蓝色。是否有用于“原始设置”或类似内容的特殊 CSS 关键字?

【问题讨论】:

【参考方案1】:

value for original setting you're looking for 被称为initial

a:hover 
    color: initial

但是,这可能会使链接变黑。这意味着在这种情况下它对你不起作用。 不过,您可以通过 a 风格解决此问题。使用 :not 选择器使用 :hover 的倒数。

a:not(:hover)
  color: #000;
  text-decoration: none;
&lt;a href="#"&gt;Hi, I'm Link.&lt;/a&gt;

它的工作方式是将样式应用于您的链接,只要它不是悬停效果。单独a 也会设置:hover 的样式,这是我们不想要的。

或者,如果这在您的环境中不起作用,您可以使用 default colors 设置链接样式:

a  color: #000; text-decoration: none; 

a:hover color: #0000EE; text-decoration: underline; 
&lt;a href="#"&gt;Hi, I'm Link.&lt;/a&gt;

这应该适用于任何地方,因为它是一种常规的颜色变化。但是,请注意,默认颜色可能会因浏览器而略有不同……这样做的好处是颜色在所有浏览器中都保持相同,我猜。

中间一段代码和最后一段代码的区别在于,中间一段使用默认浏览器设置,而最后一段则推入你自己的蓝色。

【讨论】:

这是有道理的,看起来符合最新标准,但它在我的开发测试或 JSFiddle 中不起作用。我认为它将初始应用于悬停情况并将链接颜色恢复为普通的非悬停 CSS 黑色。 @stackuser83 看看中间那个,它可能对你有用:) not(:hover) 很聪明,@Martin,可以解决问题。我的想法是支持用户样式表,我现在意识到自 v33 以来 Chrome 不支持它,尽管有一些扩展可以重新启用该功能。谢谢!

以上是关于有没有办法将“a”标签链接取消设置为默认颜色的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将颜色点链接到具有不同图例的字典?

IDEA 护眼色设置 背景行颜色取消等设置

为什么我们把链接设置为 "初始 "时,链接的颜色是黑色,否则就是蓝色?

如何根据暗/亮模式设置默认标签颜色(在 Swift 中)

CSS里的a:active 是干啥用的,请举例说明

将链接的默认颜色从蓝色更改为白色