2014-05-20 33 views
0

我编写了一个Chrome扩展程序,其中一个功能是可以在您正在浏览的页面上打开一个帮助面板,其中包含使用指南。这个帮助面板通过JS插入到页面中,它的CSS都是通过$('#selector_for_help_panel').css({etc})创建的。是否媒体=“全部”CSS覆盖所有内容?

这很好,除了在Reddit上有一些media="all" CSS规则覆盖了我的JS的内联CSS。我认为只有!important覆盖了内联CSS。

!important会在这里工作来抵消他们的CSS? media="all"落在CSS优先级的层次结构中?

回答

1

媒体类型和媒体查询对级联没有影响。正常情况下,您可以采用样式表排序的所有原则(例如用户代理,外部样式和内部样式表以及它们的加载顺序),级联和继承,包括使用!important

!important经常被宣传为一种打击内联样式的工具,但其基本原因是它提升了它应用于级联中的任何声明,这允许内联样式之外的任何声明都可以击败内联样式(实际上如果这些内联样式本身具有!important),它实际上仍然可以被内联样式打败。这意味着样式表优先级的所有规则以及选择器特殊性仍然适用,特别是在级联中的不同级别中有!important声明时。

另请参阅:Relationship between !important and CSS specificity

+0

这就是我想的!但是,如何/为什么它重写我的内联CSS?你不是独角兽吗? – Aerovistae

+0

@Aerovistae:编辑我的答案。不幸的是,我的独角兽权力现在已经[本地化到Meta SE](http://meta.stackexchange.com/users/137537/boltclocks-a-unicorn)。 – BoltClock