我怎样才能取消CSS属性?

基本上我有两个外部的CSS在我的页面。

第一个Main.css包含所有样式规则,但是我没有访问它,因此我不能修改它。 我有权访问第二个文件Template.css ,所以我需要重写Main.css的值。

这很容易,我不得不改变价值,但我如何完全删除一个属性?

就像说一个类.c1height: 40px; ,我该如何摆脱这个高度属性?

您必须将每个单独的属性重置为其默认值。 这不是很好,但是根据你提供的信息,这是唯一的方法。

在你的例子中,你会做:

 .c1 { height: auto; } 

你应该在这里search每个属性:

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

例如, height

初始值: auto

另一个例子, max-height

初始值: none


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

 .c1 { height: unset; } 

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

未设置的CSS关键字是初始和inheritance关键字的组合。 与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS速记all。 如果该属性inheritance自其父项,则将该属性重置为其inheritance的值,否则将该属性重置为其初始值。 换句话说,它的行为就像第一种情况下的inheritance关键字,而第二种情况下的初始关键字一样。

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

就像说一个类.c1的高度:40px; 我如何摆脱这个高度属性?

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

在这种情况下,您将使用重置属性

  height: auto; 

因为@Ben正确地指出,在某些情况下, inherit是正确的方法,例如,重置元素的文本颜色(该属性从父元素inheritance):

 a { color: inherit } 

在CSS3中添加了一个initial关键字,允许作者明确指定这个初始值。

 .c1 { height: unset; } 

CSS3中添加的未unset值也解决了这个问题, 它比autoinitial更通用,因为它将每个CSS属性设置为默认值,并且相对于其父项的缺省行为。

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

来自MDN :

与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS速记all 。 如果该属性inheritance自其父项,则将该属性重置为其inheritance的值,否则将该属性重置为其初始值。

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

 height: auto; 

你需要提供一个比Main.css更高特异性的select器。 使用该select器,将您想要的属性的值设置为其默认值,例如

 body .c1 { height: auto; } 

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

我有一个问题,即使当我将“高度”改写为“未设置”或“初始”时,其行为与我去除先前设置时的行为不同。

原来,我需要删除最小高度属性呢!

 height: unset; min-height: none 

编辑:我testing了IE 7,它不能识别“未设置”,所以“自动”效果更好“。