从超链接中删除所有样式/格式

Sit*_*per 133 html css href

我正在创建一个包含不同颜色(href链接)的单词的导航菜单.我希望颜色不要在任何状态下改变(悬停,访问等).

我知道如何设置不同状态的颜色,但我想知道代码只是保留文本颜色(以及任何其他样式/格式).

有什么建议?

Frx*_*rem 209

你可以简单地定义样式的链接,这将覆盖a:hover,a:visited等:

a {
  color: blue;
  text-decoration: none; /* no underline */
}
Run Code Online (Sandbox Code Playgroud)

inherit如果要使用父样式中的属性,也可以使用该值:

body {
  color: blue;
}
a {
  color: inherit; /* blue colors for links too */
  text-decoration: inherit; /* no underline */
}
Run Code Online (Sandbox Code Playgroud)

  • 重要的部分是`inherit`关键字.不幸的是,它没有100%的支持. (4认同)
  • 当你想要css重置为默认样式时,`initial`也很有用.这里有很好的解释[link](http://stackoverflow.com/questions/8228980/reset-css-display-property-to-default-value) (2认同)

Ala*_*udy 38

属性值对:

a {
    all: unset;
}

Run Code Online (Sandbox Code Playgroud)

在我看来,看起来更干净,并且具有与所有选择器一起使用的优势,例如:

a, button /* &c... */ {
    all: unset;
}

Run Code Online (Sandbox Code Playgroud)

请注意,这也会{cursor: pointer;}从您的链接中删除该属性。它可能是也可能不是您正在寻找的东西。只需在第二种情况下添加此属性即可。

要了解有关all简写的更多信息,请查看此页面: https: //developer.mozilla.org/en-US/docs/Web/CSS/all
正如 Emi 所说,不要忘记检查兼容性: https://caniuse .com/css-all


Spo*_*nNZ 6

正如克里斯在我之前所说的那样,只是a应该覆盖。例如:

a { color:red; }
a:hover { color:blue; }
.nav a { color:green; }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,.nav a永远是绿色的, :hover 不适用于它。

如果有其他规则影响它,您可以使用!important,但您不应该使用。养成这种坏习惯。

.nav a { color:green !important; } /*I'm a bad person and shouldn't use !important */
Run Code Online (Sandbox Code Playgroud)

然后它将永远是绿色的,与任何其他规则无关。