基本上我的页面中有两个外部css.
第一个Main.css包含所有样式规则,但我无法访问它,因此我无法修改它.我有权访问第二个文件Template.css,所以我需要覆盖其中Main.css的值template.css.
这很容易我必须更改值,但如何完全删除属性?
好比说一个类.c1有height: 40px;,我怎么摆脱这个高度财产?
thi*_*dot 167
您必须将每个单独的属性重置为其默认值.这不是很好,但鉴于你给我们的信息,这是唯一的方法.
在您的示例中,您将执行以下操作:
.c1 {
height: auto;
}
Run Code Online (Sandbox Code Playgroud)
你应该在这里搜索每个房产:
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference
对于例如height:
初始值 :
auto
另一个例子,max-height:
初始值 :
none
在2017年,现在有另一种方式,unset关键字:
.c1 {
height: unset;
}
Run Code Online (Sandbox Code Playgroud)
一些文档:https://developer.mozilla.org/en-US/docs/Web/CSS/unset
未设置的CSS关键字是初始关键字和继承关键字的组合.与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS简写全部.如果该属性从其父级继承,则将该属性重置为其继承的值,否则重置为其初始值.换句话说,它的行为类似于第一种情况下的inherit关键字,就像第二种情况下的initial关键字一样.
浏览器支持很好:http://caniuse.com/css-unset-value
比如说一个班级.c1有高度:40px; 我如何摆脱这个身高属性?
可悲的是,你做不到.CSS没有"默认"占位符.
在这种情况下,您将使用重置属性
height: auto;
Run Code Online (Sandbox Code Playgroud)
正如@Ben正确指出的那样,在某些情况下,inherit是正确的方法,例如在重置a元素的文本颜色时(该属性从父元素继承):
a { color: inherit }
Run Code Online (Sandbox Code Playgroud)
.c1 {
height: unset;
}
Run Code Online (Sandbox Code Playgroud)
CSS3中unset添加的值也解决了这个问题,它甚至比通用方法更通用,因为它为每个CSS属性设置了默认值,并且相对于其父项设置了默认行为.autoinitial
请注意,initial值会破坏上述行为.
来自MDN:
与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS简写全部.如果该属性从其父级继承,则将该属性重置为其继承的值,否则重置为其初始值.