如何覆盖CSS规则?

时间:2013-06-06 21:42:48

标签: css overwrite

我只是好奇我如何用自己的方法覆盖CSS?

Bottomline是,我的网站上有一些付款方式。我可以在“购买”部分更改layoyt的唯一方法是更改​​CSS。我不能自己更改HTML,或者添加任何内容。只更改CSS文件。

在我创建的那个中,我有一个标题如下:

#header {
overflow: hidden;
position: relative;
}

但是我无法删除或更改的其他CSS文件得到了:

#header {
overflow: hidden;
position: relative;
background: transparent url("logo-bg.png") repeat-x top;
}

这会破坏我的标题,因为我不知道那个背景:)

有趣的是,我的CSS文件实际上是最后一个,我认为会覆盖另一个?但事实并非如此:(

那么有没有办法覆盖背景标记,以便它不显示?

提前致谢。

4 个答案:

答案 0 :(得分:3)

两个选择者同样specific;但由于您的CSS文件包含在您尝试覆盖的规则之后,因此只需将background属性设置为none

#header {
    background: none;
}

http://jsfiddle.net/PqdmU/

答案 1 :(得分:1)

规则集不会被覆盖,只会被个别规则覆盖。

#header {
    overflow: hidden;
    position: relative;
    background: none;
}

您不需要overflowposition规则,因为这些规则都将从其他规则集继承。

答案 2 :(得分:1)

只要您的css规则在默认值之后加载,您应该覆盖具有相同(或更低特异性)的规则。如果您想了解更多相关信息,请查看css的级联顺序。

当您声明您的css文件在默认值之后加载时,应该是安全的。覆盖仅适用于您指定的样式规则,其余部分继承自先前的规则。在你的情况下,你没有覆盖任何东西,你正在重新设置一些规则,但你要改变的是忽略。

要达到您想要的效果,您必须在css中添加以下内容:

#header {
   background-image: none;
}

这样您就可以从背景中删除以前设置的图像,并保留所有其他规则。

答案 3 :(得分:0)

您可以将background-image设置为none:

#header {
    overflow: hidden;
    position: relative;
    background-image: none;
}