css - 为什么我必须覆盖 webkit 样式表才能为 anchor 链接创建 css 规则?

标签 css google-chrome inheritance overriding root

为什么 :root color 不能是 :root color?这不是它的目的吗?

:root {
    color: #4c4e4d;
}

/* this seems excessive to have to 'inherit override' anchor  
links. */
a:-webkit-any-link {
  color: inherit;
}

最佳答案

链接是colored differently from the rest of the text by default .在过去的 20 年里,几乎每个浏览器都这样做过;它不是特定于 WebKit 的东西。因此,如果您希望链接与文本的其余部分颜色相同,则需要指示浏览器使它们如此。执行此操作的惯用方法是使用 color: currentColor 而不是 color: inherit,以及跨浏览器兼容的选择器(如果您不打算这样做WebKit 特定的)是 a[href]

如果你问为什么作者级别的 :root 规则不覆盖 UA 级别的 a:-webkit-any-link 规则,原因是双重的:

  1. :root 中设置字体颜色并不意味着“强制页面上的所有文本都是这种颜色”,它意味着“在根元素上设置颜色,允许后代可以正常继承该颜色。”

  2. 继承值永远不会覆盖级联值,无论它们来自何处,也无论两个选择器的特异性如何(当选择器开始匹配不同元素时,特异性不会进入对话)。

关于css - 为什么我必须覆盖 webkit 样式表才能为 anchor 链接创建 css 规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52175856/

相关文章:

javascript - Firefox 和 IE 无法修改 cssRules

html - Freemarker 中的 CSS spring.formInput

javascript - 资源解释为脚本但使用 MIME 类型文本/纯文本传输 - 对于本地文件

google-chrome - 如何模拟沙箱 "pre-installed by policy"扩展

java - Selenium - 通过 url 进行基本身份验证

c# - 继承上下文时避免从基本 EF Core 3.0 模型重新建模对象

css - 如何使固定的 BG 图片溢出父 DIV?

javascript - 需要将样式规则设置为 JavaScript 图像随机化脚本

c++ - 我搞砸了我的遗产

c++ - 将基类的实例传递给派生类