【问题标题】:CSS author class rule overriden by element browser native ruleCSS 作者类规则被元素浏览器原生规则覆盖
【发布时间】:2016-10-10 10:36:32
【问题描述】:

font-size 由类规则 (.dropdown-menu) 定义的 CSS 规则已被内置浏览器元素规则 (table) 覆盖。这怎么可能?

我正在开发使用PatternFly 样式的Cockpit 插件。我的标签元素(屏幕截图中的选定行)具有太大的font-size,它是从间接父元素table 继承的。令人惊讶的是,该表没有从其父元素(在.dropdown 定义中为div.dropdown 定义)继承属性font-size 的值,但是它直接从浏览器样式表中获取它。我想知道这怎么可能,它不违反 CSS 级联 - 使用浏览器定义而不是从父元素继承吗?

它在 Chrome 51 和 Firefox 46 中始终如一地工作。

Here 是简化的 JsFiddle 演示,似乎可以正常工作(即不同)。

根据w3schoolsfont-size规则被继承,根据css specification浏览器样式应该有较低的优先级。

【问题讨论】:

  • 检查您是否处于怪异模式,这可能会导致此继承问题。如果您处于严格模式,则不应发生这种情况。
  • document.compatMode 返回CSS1Compat 因此我猜它处于严格模式(根据stackoverflow.com/a/627124/639687)。现在我可能会错过一些关于如何应用 css 规则的内容。您能解释一下为什么font-size 值是从浏览器样式表中挑选出来的,而不是继承而来的吗?并将其与未链接的 JsFiddle 示例进行比较?
  • @AndyHoffman 你是对的,这是 iframe 中的一种怪癖模式。这就是为什么根文档的compatMode 返回CSS1Compat。谢谢你的提示。你想把它放在我能接受的答案中吗?
  • 完成。谢谢,@czerny。

标签: css css-cascade


【解决方案1】:

检查您的文档是否在quirksmode 中,这可能会导致继承问题。如果文档处于严格模式,则不应发生这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-28
    • 2016-04-20
    • 2015-04-19
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多