我怎样才能取消CSS属性?
基本上我有两个外部的CSS在我的页面。
第一个Main.css
包含所有样式规则,但是我没有访问它,因此我不能修改它。 我有权访问第二个文件Template.css
,所以我需要重写Main.css
的值。
这很容易,我不得不改变价值,但我如何完全删除一个属性?
就像说一个类.c1
有height: 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
值也解决了这个问题, 它比auto
或initial
更通用,因为它将每个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,它不能识别“未设置”,所以“自动”效果更好“。