如何使 css 属性无效?

Posted

技术标签:

【中文标题】如何使 css 属性无效?【英文标题】:How can I nullify css property? 【发布时间】:2011-07-10 06:34:31 【问题描述】:

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

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

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

就像说一个类.c1height: 40px;,我该如何摆脱这个高度属性?

【问题讨论】:

***.com/questions/15901030/… 【参考方案1】:

您必须将每个单独的属性重置为其默认值。这不是很好,但鉴于您提供给我们的信息,这是唯一的方法。

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

.c1 
    height: auto;

您应该在这里搜索每个属性:

https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

对于example, height

初始值:auto

另一个example, max-height

初始值:none


2017 年,现在有了另一种方式,unset 关键字:

.c1 
    height: unset;

一些文档:https://developer.mozilla.org/en-US/docs/Web/CSS/unset

未设置的 CSS 关键字是初始和继承的组合 关键词。像这两个其他 CSS 范围的关键字一样,它可以应用于 任何 CSS 属性,包括 CSS 速记 all。此关键字重置 如果从其父级继承,则该属性为其继承值,或者 如果不是,则返回其初始值。换句话说,它的行为类似于 在第一种情况下继承关键字,就像在 第二种情况。

浏览器支持不错:http://caniuse.com/css-unset-value

【讨论】:

+1 以获得很好的答案和参考。我认为链接已更改为:developer.mozilla.org/en-US/docs/Web/CSS/Reference 当没有初始值(“初始值:无”)时,将值设置为自动似乎不起作用。例如,在执行“max-width:auto;”时我收到不匹配的属性值错误。我该怎么办? @user1779563 您将其设置为“无”。 我要感谢@simhumileco 提供的his answer,因为我的答案被接受并且人们可能不会向下滚动,所以我无耻地窃取了它。【参考方案2】:
.c1 
    height: unset;

CSS3 中添加的 unset 值也解决了这个问题,它比 autoinitial 更通用,因为它设置了每个 CSS 属性它的默认值以及相对于其父级的默认行为。

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

来自MDN:

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

【讨论】:

【参考方案3】:

就像说一个类 .c1 有 height:40px;如何摆脱这个高度属性?

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

在这种情况下,您可以使用

重置属性
 height: auto;

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

a  color: inherit 

【讨论】:

我会给 +1 的。还有“继承”价值。在除身高以外的某些情况下,继承更合适。 @meo 你是对的。 (Related question) 这似乎意味着IE中有些属性无法重置为默认值...可惜【参考方案4】:

在 CSS3 中添加了一个 initial 关键字,以允许作者明确指定此初始值。

【讨论】:

仅供参考:height:initial; 在 IE9 中似乎不起作用。 那么initialautounset之间有什么区别?。【参考方案5】:

要摆脱固定高度属性,您可以将其设置为默认值:

height: auto;

【讨论】:

【参考方案6】:

您需要提供一个比Main.css 更高的specificity 选择器。使用该选择器,将所需属性的值设置为默认值,例如

body .c1 
    height: auto;

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

【讨论】:

【参考方案7】:

我有一个问题,即使我将“高度”覆盖为“未设置”或“初始”,它的行为与我删除之前的设置时不同。

原来我也需要删除 min-height 属性!

height: unset;
min-height: none

编辑:我在 IE 7 上进行了测试,它无法识别“未设置”,因此“自动”效果更好”。

【讨论】:

对于未来的读者:if "min-height: none;"对您不起作用,请尝试使用值为 0 的 min-height 属性无效。

以上是关于如何使 css 属性无效?的主要内容,如果未能解决你的问题,请参考以下文章

支持 django 模板和 HTML/CSS 验证的编辑器或 IDE?

故意设置无效的css属性

如何使 CSS 属性动画在 Safari 中像在 Google Chrome 中一样工作?

为啥ie中我设置的font-weight属性无效

设置z-index属性无效的css定位属性设置是

css calc 无效的属性值