【发布时间】: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