作者:mobiledu2502898543 | 来源:互联网 | 2023-05-27 17:58
编辑***在什么情况下用户代理样式可以覆盖自定义CSS?
我在我的页面上的元素上设置了一些样式,似乎用户代理样式表覆盖了我的定义.
它发生在Chrome版本39.0.2171.95 m,Firefox 34.0.5中,但不是在IE 11中.
我知道我对该元素没有任何直接的样式,但我的理解是,如果特定元素绝对没有样式,则用户代理样式表仅接管.继承的风格不算数吗?
1> Jukka K. Kor..:
一般问题的答案是,在决定哪种样式设置"获胜"时,仅考虑元素本身上设置的属性设置.例如,如果我们只有一个设置font-size: 18px
在body
元素上的样式表和另一个设置font-size: 9px
在所有p
元素上的样式表,那么元素的字体大小p
是9px,无论样式表的起源是什么,例如后者是否是只是一个浏览器默认样式表.继承在这里没有任何作用.这在CSS 2.1规范的分配属性值,级联和继承一节中有所描述.
只有在上述"斗争"解决后,才会考虑继承.只有这样的可继承属性由那些他们不要设置元素继承可言.
具体问题没有提供具体的代码,但可以推断出你有这样的东西:
bar
通常这会导致"foo"和"bar"以12px大小显示.表单元格继承表行的大小,表行从tbody
元素继承它,该元素从表继承它,从表继承它body
.
但是,在您的情况下,此链断开.原因是浏览器样式表有
table { font-size: medium }
实际上往往意味着16px.现在table
元素具有属性集,因此单元格继承该值.
浏览器通常在样式表中没有这样的规则.但是,在Quirks模式下,大多数浏览器都应用该规则.这意味着字体大小不会从body
表继承.这反映了IE的非常旧版本中的错误(或奇怪),并允许旧页面像以前一样呈现.
如果您无意中导致Quirks模式并且不需要它用于其他目的,只需拍打
在文档的最开始.但要注意,旧页面可能会以不同的方式搞砸,如果它们是在与Quirks模式相对应的测试条件下设计的.
或者,将以下规则添加到样式表中:
table { font-size: 100% }
这意味着表获取其父级的字体大小.(比如继承,但更安全.)