如何使CSS属性无效?


109

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

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

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

好比说一个类.c1height: 40px;,我怎么摆脱这个高度财产?


Answers:


175

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

在您的示例中,您将执行以下操作:

.c1 {
    height: auto;
}

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

https://developer.mozilla.org/zh-CN/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关键字是initial关键字和Inherited关键字的组合。像其他两个CSS级关键字一样,它可以应用于任何CSS属性,包括全部的CSS缩写。如果该关键字从其父级继承,则将属性重置为其继承的值;否则,将其重置为初始值。换句话说,在第一种情况下,它的行为类似于Inherit关键字,在第二种情况下,其行为与初始关键字类似。

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


3
+1是不错的答案和参考。我认为链接已更改为:developer.mozilla.org/en-US/docs/Web/CSS/Reference
Paolo 2013年

没有初始值(“初始值:无”)时,将值设置为auto似乎不起作用。例如,当执行“ max-width:auto;”时 我收到不匹配的属性值错误。我该怎么办?
user1779563

3
@ user1779563您将其设置为“无”。
AndreKR

1
我要感谢@simhumileco 的回答,因为我的回答被接受了,而且人们可能不会向下滚动,所以我偷偷偷了它。
三十点

10
.c1 {
    height: unset;
}

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

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

MDN

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


9

就像说一个类.c1具有height:40px; 如何摆脱高度属性?

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

在这种情况下,您可以使用

 height: auto;

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

a { color: inherit }

3
我会给+1。还有“继承”值。在除高度以外的其他顶点中,继承更合适。

1
@meo你是对的。(相关问题)这似乎意味着有些属性无法在IE中重置为其默认值...真可惜
Pekka


2

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

height: auto;

2

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

body .c1 {
    height: auto;
}

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


1

我有一个问题,即使我确实将“高度”覆盖为“未设置”或“初始”,它的行为也与我删除先前的设置时有所不同。

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

height: unset;
min-height: none

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.