如何取消 css 属性?

基本上,我有两个外部 css 在我的页面。

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

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

比如说一个类 .c1height: 40px;,我如何去掉这个高度属性?

148956 次浏览

比如说一个 class. c1的 height: 40px; 我如何去掉这个 height 属性?

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

在这种情况下,可以使用

 height: auto;

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

a { color: inherit }

要去掉“固定高度”属性,可以将其设置为默认值:

height: auto;

您必须将每个属性重置回其默认值。不是很好,但鉴于你给我们的信息,这是唯一的办法。

在你的例子中,你会这样做:

.c1 {
height: auto;
}

你应在此搜寻每个物业:

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

Unset CSS 关键字是初始值和继承值的组合 像这两个 CSS 范围的关键字一样,它可以应用于 任何 CSS 属性,包括 CSS 速记全部。此关键字重置 如果属性继承自其父级或 如果不是,则返回其初始值。换句话说,它的行为类似于 在第一种情况下继承关键字,并且类似于 第二个案子。

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

您需要提供一个 具体点高于 Main.css的选择器。使用这个选择器,将属性的值设置为它们的默认值,例如。

body .c1 {
height: auto;
}

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

在 CSS3中添加了一个 initial关键字,以允许作者显式地指定这个初始值。

.c1 {
height: unset;
}

CSS3中添加的 unset值也解决了这个问题,而 它甚至比 ABC1和 initial更通用也解决了这个问题,因为它为每个 CSS 属性设置了默认值,并且相对于它的父级设置了默认的行为。

请注意,initial值打破了上述行为。

来自 MDN:

像这两个 CSS 范围的关键字一样,它可以应用于任何 CSS 属性,包括 CSS 简写 所有。此关键字将属性重置为其继承的值(如果它从其父级继承) ,或重置为其初始值(如果不是)。

我遇到了一个问题,即使我将“ height”重写为“ unset”或“ initial”,它的行为也与删除前面的设置时不同。

事实证明,我需要删除的最小高度属性了!

height: unset;
min-height: none

编辑: 我在 IE7上测试过,它不能识别“ unset”,所以“ auto”更好用。