基本上我的页面中有两个外部css。
第一个Main.css
包含所有样式规则,但我无法访问它,因此我无法修改它。我有权访问第二个文件Template.css
,因此我需要覆盖Main.css
中的template.css
值。
这很容易我必须更改值,但如何完全删除属性?
就像说.c1
班有height: 40px;
一样,我如何摆脱这个身高属性呢?
答案 0 :(得分:154)
您必须将每个单独的属性重置为其默认值。这不是很好,但鉴于你给我们的信息,这是唯一的方法。
在你的例子中,你会这样做:
.c1 {
height: auto;
}
您应该在这里搜索每个属性:
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference
初始值:
auto
初始值:
none
2017年,现在有另一种方法,unset
关键字:
.c1 {
height: unset;
}
一些文档:https://developer.mozilla.org/en-US/docs/Web/CSS/unset
未设置的CSS关键字是初始和继承的组合 关键字。像这两个其他CSS范围的关键字一样,它可以应用于 任何CSS属性,包括CSS简写全部。此关键字重置 如果属性继承自其父级或属性,则该属性为其继承值 如果没有它的初始值。换句话说,它的行为就像 在第一种情况下继承关键字,并像在初始关键字中一样 第二种情况。
答案 1 :(得分:9)
喜欢说一个班级.c1有高度:40px;我如何摆脱这个高度属性?可悲的是,你做不到。 CSS没有“默认”占位符。
在这种情况下,您将使用
重置该属性 height: auto;
正如@Ben正确指出的那样,在某些情况下,inherit
是正确的方法,例如重置a
元素的文本颜色时(该属性从父元素继承) ):
a { color: inherit }
答案 2 :(得分:7)
CSS3中添加了initial
关键字,以允许作者明确指定此初始值。
答案 3 :(得分:6)
.c1 {
height: unset;
}
CSS3 中添加的unset
值也解决了这个问题,它比auto
或initial
<更通用的方法< / 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上测试过并且无法识别“未设置”,因此“自动”效果更好“。