【问题标题】:CSS cascading precedence of origin and importanceCSS级联起源和重要性的优先级
【发布时间】:2020-03-27 22:38:31
【问题描述】:

根据specs,声明来源的优先级如下(Top 胜):

  1. 过渡声明 [css-transitions-1]
  2. 重要的用户代理声明
  3. 重要的用户声明
  4. 重要作者声明
  5. 动画声明 [css-animations-1]
  6. 普通作者声明
  7. 普通用户声明
  8. 普通用户代理声明

我正在尝试验证普通作者声明 (6) 是否胜过普通用户声明 (7),但我认为我得到了相反的结果:

在上面的示例中,我有一个外部 css 文件 (style.css),它将 p 元素的颜色声明为 green

然后我添加一些用户样式,声明与blue相同的选择器的颜色。

我希望作者声明(绿色)会胜过用户声明(蓝色),但情况恰恰相反。

对正在发生的事情有任何想法吗?也许我在示例中做错了什么?

【问题讨论】:

  • 这两个文件的优先级是什么,一个是第一个,一个是第二个
  • 如果我没记错的话,作者声明是蓝色的,另一个是用户,不是吗?
  • 我们确定通过检查员入侵其他规则算作“用户声明”吗?您引用的文档说,“用户来源 - 用户可能能够为特定文档指定样式信息。例如,用户可以指定一个包含样式表的文件,或者用户代理可以提供一个生成用户样式表的界面(或表现得好像它确实如此)。” - 我不太确定 dev工具在这里符合条件,分别。我认为对此的解释可能会有不同的方式......?
  • @Awais,我首先仅使用 style.css(绿色)加载页面,然后从开发工具中添加了新规则(蓝色)
  • @Temani Afif:不,颜色:绿色是作者级别的。不确定颜色:蓝色,但如果检查器样式表也是作者级别的,我不会感到惊讶。

标签: css css-specificity css-cascade


【解决方案1】:

从开发工具应用的自定义 CSS 不被视为 用户 样式表,而是作为 内联、作者 样式表。这就是它优于外部 CSS 声明的原因。

afaik 对用户样式表的支持是 removed from Chrome back in 2014,设置它们的唯一方法是通过扩展。 For Firefox, you can edit userContent.css

【讨论】:

    【解决方案2】:

    在颜色样式表中添加“!important”。见下文

    p{
        color: green !important;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 2012-01-02
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多