【发布时间】:2011-07-10 06:34:31
【问题描述】:
基本上我的页面中有两个外部 css。
第一个Main.css 包含所有样式规则,但我无权访问它,因此我无法修改它。我可以访问第二个文件 Template.css ,因此我需要覆盖 template.css 中的 Main.css 的值。
这很容易,我必须更改值,但是如何完全删除属性?
就像说一个类.c1 有height: 40px;,我该如何摆脱这个高度属性?
【问题讨论】:
标签: css
基本上我的页面中有两个外部 css。
第一个Main.css 包含所有样式规则,但我无权访问它,因此我无法修改它。我可以访问第二个文件 Template.css ,因此我需要覆盖 template.css 中的 Main.css 的值。
这很容易,我必须更改值,但是如何完全删除属性?
就像说一个类.c1 有height: 40px;,我该如何摆脱这个高度属性?
【问题讨论】:
标签: css
您必须将每个单独的属性重置为其默认值。这不是很好,但鉴于您提供给我们的信息,这是唯一的方法。
在你的例子中,你会这样做:
.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 速记 all。此关键字重置 如果从其父级继承,则该属性为其继承值,或者 如果不是,则返回其初始值。换句话说,它的行为类似于 在第一种情况下继承关键字,就像在 第二种情况。
【讨论】:
就像说一个类 .c1 有 height:40px;如何摆脱这个高度属性?
很遗憾,你不能。 CSS 没有“默认”占位符。
在这种情况下,您可以使用
重置属性 height: auto;
正如@Ben 正确指出的那样,在某些情况下,inherit 是正确的方法,例如在重置 a 元素的文本颜色时(该属性是从父元素继承的):
a { color: inherit }
【讨论】:
在 CSS3 中添加了一个 initial 关键字,以允许作者明确指定此初始值。
【讨论】:
height:initial; 在 IE9 中似乎不起作用。
initial和auto和unset之间有什么区别?。
要摆脱固定高度属性,您可以将其设置为默认值:
height: auto;
【讨论】:
您需要提供一个比Main.css 更高的specificity 选择器。使用该选择器,将所需属性的值设置为默认值,例如
body .c1 {
height: auto;
}
没有适用于所有属性的“默认”值,您需要查看每个属性的默认值并使用它。
【讨论】:
我有一个问题,即使我将“高度”覆盖为“未设置”或“初始”,它的行为与我删除之前的设置时不同。
原来我也需要删除 min-height 属性!
height: unset;
min-height: none
编辑:我在 IE 7 上进行了测试,它无法识别“未设置”,因此“自动”效果更好”。
【讨论】: