如何使css属性无效?

时间:2011-03-07 10:45:38

标签: css

基本上我的页面中有两个外部css。

第一个Main.css包含所有样式规则,但我无法访问它,因此我无法修改它。我有权访问第二个文件Template.css,因此我需要覆盖Main.css中的template.css值。

这很容易我必须更改值,但如何完全删除属性?

就像说.c1班有height: 40px;一样,我如何摆脱这个身高属性呢?

7 个答案:

答案 0 :(得分:154)

您必须将每个单独的属性重置为其默认值。这不是很好,但鉴于你给我们的信息,这是唯一的方法。

在你的例子中,你会这样做:

.c1 {
    height: auto;
}

您应该在这里搜索每个属性:

https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

example, height

  

初始值:auto

另一个example, max-height

  

初始值:none


2017年,现在有另一种方法,unset关键字:

.c1 {
    height: unset;
}

一些文档:https://developer.mozilla.org/en-US/docs/Web/CSS/unset

  

未设置的CSS关键字是初始和继承的组合   关键字。像这两个其他CSS范围的关键字一样,它可以应用于   任何CSS属性,包括CSS简写全部。此关键字重置   如果属性继承自其父级或属性,则该属性为其继承值   如果没有它的初始值。换句话说,它的行为就像   在第一种情况下继承关键字,并像在初始关键字中一样   第二种情况。

浏览器支持很好:http://caniuse.com/css-unset-value

答案 1 :(得分:9)

  喜欢说一个班级.c1有高度:40px;我如何摆脱这个高度属性?

可悲的是,你做不到。 CSS没有“默认”占位符。

在这种情况下,您将使用

重置该属性
 height: auto;

正如@Ben正确指出的那样,在某些情况下,inherit是正确的方法,例如重置a元素的文本颜色时(该属性从父元素继承) ):

a { color: inherit }

答案 2 :(得分:7)

CSS3中添加了initial关键字,以允许作者明确指定此初始值。

答案 3 :(得分:6)

.c1 {
    height: unset;
}

CSS3 中添加的unset值也解决了这个问题,它比autoinitial <更通用的方法< / strong>因为它为每个CSS属性设置了它的默认值,并且还相对于其父项设置了默认行为。

请注意,initial值会破坏上述行为。

来自MDN

  

与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS简写all。如果该属性从其父级继承,则将该属性重置为其继承的值,否则重置为其初始值。

答案 4 :(得分:2)

要摆脱固定高度属性,可以将其设置为默认值:

height: auto;

答案 5 :(得分:2)

您需要提供一个比Main.css更高的specificity选择器。使用该选择器,将所需属性的值设置为默认值,例如

body .c1 {
    height: auto;
}

没有适用于所有属性的“默认”值,您需要查找每个属性的默认值并使用它。

答案 6 :(得分:1)

我遇到了一个问题,即使我将“高度”覆盖为“未设置”或“初始”,它的行为也与我删除之前的设置不同。

原来我需要删除min-height属性!

height: unset;
min-height: none

编辑:我在IE 7上测试过并且无法识别“未设置”,因此“自动”效果更好“。