【问题标题】:CSS type selector overrides attribute selector?CSS类型选择器覆盖属性选择器?
【发布时间】:2019-07-30 23:12:24
【问题描述】:

一般来说,属性选择器比类型选择器具有更高的特异性,但在下图中,类型选择器胜出(margin 设置为0)?

是因为用户代理样式表(浏览器默认样式)总是被自定义 CSS 覆盖,而不管 CSS 的特殊性如何?

【问题讨论】:

  • 而不是屏幕截图分享重现此代码的代码,以便我们更好地查看。
  • 请在问题本身中包含相关代码的minimal reproducible example
  • “是不是因为用户代理样式表(浏览器默认样式)总是被自定义 CSS 覆盖而不管 CSS 的特殊性?”是的。这里相关的级联概念是origin
  • @Alohci 如果您可以将其作为答案发布,OP 可以接受。
  • @TylerH:鉴于所需的部分代码来自 UA 内部,因此无法提供。仅包含按钮、输入、optgroup、选择、textarea CSS 规则的 Stack Snippet 本身作为 MCVE 并不十分清晰,因为读者仍然需要手动工作(上帝保佑)打开他们的 Chrome 开发工具。或者,它可以在作者样式之前包含 UA 样式以模拟级联顺序,但这甚至不是可验证的,因为那时您只是在比较两个作者级别的规则。

标签: css css-selectors css-specificity


【解决方案1】:

是因为用户代理样式表(浏览器默认样式)总是被自定义 CSS 覆盖,而不管 CSS 的特殊性如何?

是的。 “自定义 CSS”的技术名称是作者级别的 CSS,详见 this section of the spec。仅当您比较两个具有相同来源的 CSS 规则(两种 UA 样式或两种作者样式)时,特异性才相关。

【讨论】:

    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2011-04-18
    • 2012-09-11
    • 2015-08-31
    相关资源
    最近更新 更多