Html 用户代理样式表覆盖我自己的样式

Html 用户代理样式表覆盖我自己的样式,html,css,rendering,user-agent,Html,Css,Rendering,User Agent,编辑***在什么情况下用户代理样式可以覆盖自定义CSS 我在页面上的元素上设置了一些样式,似乎用户代理样式表覆盖了我的定义 它发生在Chrome 39.0.2171.95 m版、Firefox 34.0.5版中,但在IE11中没有 我知道我在该元素上没有任何直接的样式,但我的理解是,只有当某个特定元素绝对没有样式时,用户代理样式表才会接管。继承的样式不算吗 使用normalize.css来避免此问题,如果不将none样式设置为元素,他将继承用户代理样式 一般问题的答案是,在决定哪种样式设置“获

编辑***在什么情况下用户代理样式可以覆盖自定义CSS


我在页面上的元素上设置了一些样式,似乎用户代理样式表覆盖了我的定义

它发生在Chrome 39.0.2171.95 m版、Firefox 34.0.5版中,但在IE11中没有

我知道我在该元素上没有任何直接的样式,但我的理解是,只有当某个特定元素绝对没有样式时,用户代理样式表才会接管。继承的样式不算吗


使用normalize.css来避免此问题,如果不将none样式设置为元素,他将继承用户代理样式


一般问题的答案是,在决定哪种样式设置“获胜”时,只考虑在元素本身上设置的属性设置。例如,如果只有一个样式表在
body
元素上设置
font-size:18px
,另一个样式表在所有
p
元素上设置
font-size:9px
,那么
p
元素的字体大小是9px,无论样式表的来源是什么,例如,后者是否只是浏览器默认样式表。继承在这里不起作用。这在CSS 2.1规范的章节中都有描述

只有在解决了上述“斗争”之后,才考虑继承。只有在这种情况下,可继承属性才会由根本没有设置它们的元素继承

具体的问题没有提供具体的代码,但可以推断您有如下情况:

 <style>
   body { font-size: 12px; }
 </style>
 <table>
   <tr><td>foo
 </table>
 bar
实际上,这意味着16像素。现在
元素具有属性集,因此单元格继承该值

浏览器的样式表中通常没有这样的规则。但是,在中,大多数浏览器都应用了该规则。这意味着字体大小不会从
body
继承到表中。这反映了非常旧版本的IE中的bug(或奇怪之处),并使遗留页面能够像以前一样呈现

如果您无意中造成了怪癖模式,并且不需要它用于其他目的,只需拍打一下

<!DOCTYPE html>

这意味着表获取其父表的字体大小。(就像继承一样,但更安全。)

是的,我知道这一点。但我已经将样式应用于元素。我的问题是,为什么它会覆盖应用于元素的样式。你应该包含足够的HTML和CSS作为文本,以复制该问题。我必须发布CSS和HTML页面。我想,只要根据Chrome developer工具发布计算出的样式,您就可以看到有一些样式应用于元素,但它们会被用户代理样式覆盖。我想我应该在我的问题“在什么情况下,用户代理样式可以覆盖自定义CSS?”-我现在就这样做。不,你应该发布一个实际演示问题的最小文档。但在我下面的回答中,我认为我重新构建了一个简单的案例。你不应该把一个问题变成一个完全不同的问题,或者当你有一个特定的问题时,你不应该问一个一般性的问题。一般性问题通常被认为过于宽泛(即使不宽泛,对它们的回答也可能解决不了你真正的问题)。似乎回答了最初的问题——“继承的样式不算吗?”这与修订后的问题“在什么情况下用户代理样式可以覆盖自定义CSS?”非常接近。谢谢你向我解释这件事。我知道更具体的CSS规则有优先权,但我想我在查找用户代理样式表主题时误解了某些参考资料。
<!DOCTYPE html>
table { font-size: 100% }