基本上,我有两个外部 css 在我的页面。
第一个 Main.css包含所有的样式规则,但是我不能访问它,因此我不能修改它。我有权访问第二个文件 Template.css,所以我需要覆盖 template.css中的 Main.css值。
Main.css
Template.css
template.css
这很容易,因为我必须更改值,但是如何完全删除属性呢?
比如说一个类 .c1有 height: 40px;,我如何去掉这个高度属性?
.c1
height: 40px;
比如说一个 class. c1的 height: 40px; 我如何去掉这个 height 属性?
遗憾的是,你不能。 CSS 没有“默认”占位符。
在这种情况下,可以使用
height: auto;
正如@Ben 正确指出的那样,在某些情况下,inherit是正确的选择,例如在重置 a元素的文本颜色时(该属性是从父元素继承的) :
inherit
a
a { color: inherit }
要去掉“固定高度”属性,可以将其设置为默认值:
您必须将每个属性重置回其默认值。不是很好,但鉴于你给我们的信息,这是唯一的办法。
在你的例子中,你会这样做:
.c1 { height: auto; }
你应在此搜寻每个物业:
Https://developer.mozilla.org/en-us/docs/web/css/reference
对于 例如,height:
height
初始值: auto
auto
另一个 例如,max-height:
max-height
初始值: none
none
在2017年,现在有另一种方式,unset关键字:
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关键字,以允许作者显式地指定这个初始值。
initial
在 CSS3中添加的 unset值也解决了这个问题,而 它甚至比 ABC1和 initial更通用也解决了这个问题,因为它为每个 CSS 属性设置了默认值,并且相对于它的父级设置了默认的行为。
请注意,initial值打破了上述行为。
来自 MDN:
像这两个 CSS 范围的关键字一样,它可以应用于任何 CSS 属性,包括 CSS 简写 所有。此关键字将属性重置为其继承的值(如果它从其父级继承) ,或重置为其初始值(如果不是)。
我遇到了一个问题,即使我将“ height”重写为“ unset”或“ initial”,它的行为也与删除前面的设置时不同。
事实证明,我需要删除的最小高度属性了!
height: unset; min-height: none
编辑: 我在 IE7上测试过,它不能识别“ unset”,所以“ auto”更好用。