如何使css属性无效?

Blu*_*ica 105 css

基本上我的页面中有两个外部css.

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

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

好比说一个类.c1height: 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

  • +1为好的答案和参考.我认为链接已更改为:https://developer.mozilla.org/en-US/docs/Web/CSS/Reference (3认同)
  • @ user1779563您将其设置为"none". (3认同)

Pek*_*ica 9

比如说一个班级.c1有高度:40px; 我如何摆脱这个身高属性?

可悲的是,你做不到.CSS没有"默认"占位符.

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

 height: auto;
Run Code Online (Sandbox Code Playgroud)

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

a { color: inherit }
Run Code Online (Sandbox Code Playgroud)

  • 我会给那个+1.还有"继承"价值.在高度以外的某些上下文中,继承更合适. (3认同)
  • inherit在旧的IE版本中不起作用(如ie7 :() (2认同)

sim*_*eco 8

.c1 {
    height: unset;
}
Run Code Online (Sandbox Code Playgroud)

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

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

来自MDN:

与其他两个CSS范围的关键字一样,它可以应用于任何CSS属性,包括CSS简写全部.如果该属性从其父级继承,则将该属性重置为其继承的值,否则重置为其初始值.


Ron*_*nyK 7

initialCSS3中添加了一个关键字,允许作者明确指定此初始值.