热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

如何解决《用户代理样式表覆盖我自己的样式》经验,为你挑选了1个好方法。

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


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

它发生在Chrome版本39.0.2171.95 m,Firefox 34.0.5中,但不是在IE 11中.

我知道我对该元素没有任何直接的样式,但我的理解是,如果特定元素绝对没有样式,则用户代理样式表仅接管.继承的风格不算数吗?

在此输入图像描述



1> Jukka K. Kor..:

一般问题的答案是,在决定哪种样式设置"获胜"时,仅考虑元素本身上设置的属性设置.例如,如果我们只有一个设置font-size: 18pxbody元素上的样式表和另一个设置font-size: 9px在所有p元素上的样式表,那么元素的字体大小p是9px,无论样式表的起源是什么,例如后者是否是只是一个浏览器默认样式表.继承在这里没有任何作用.这在CSS 2.1规范的分配属性值,级联和继承一节中有所描述.

只有在上述"斗争"解决后,才会考虑继承.只有这样的可继承属性由那些他们不要设置元素继承可言.

具体问题没有提供具体的代码,但可以推断出你有这样的东西:

 
 
foo
bar

通常这会导致"foo"和"bar"以12px大小显示.表单元格继承表行的大小,表行从tbody元素继承它,该元素从表继承它,从表继承它body.

但是,在您的情况下,此链断开.原因是浏览器样式表有

 table { font-size: medium }

实际上往往意味着16px.现在table元素具有属性集,因此单元格继承该值.

浏览器通常在样式表中没有这样的规则.但是,在Quirks模式下,大多数浏览器都应用该规则.这意味着字体大小不会从body表继承.这反映了IE的非常旧版本中的错误(或奇怪),并允许旧页面像以前一样呈现.

如果您无意中导致Quirks模式并且不需要它用于其他目的,只需拍打



在文档的最开始.但要注意,旧页面可能会以不同的方式搞砸,如果它们是在与Quirks模式相对应的测试条件下设计的.

或者,将以下规则添加到样式表中:

table { font-size: 100% }

这意味着表获取其父级的字体大小.(比如继承,但更安全.)


推荐阅读
author-avatar
mobiledu2502898543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有