2011-03-07 77 views
83

基本上我有两个外部的CSS在我的页面。如何取消css属性?

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

这很容易让我改变价值,但我该如何完全删除一个属性?

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

+5

我很惊讶,似乎有没有成为一个明显的重复这还没有。 – 2011-03-07 10:49:46

+1

可能有很多措辞,重复可能很难找到,但也可能是一件好事,因为这将意味着更多的人可以通过搜索找到答案 – 2011-03-07 10:53:21

+1

@Nathan肯定,但它是好的如果有人指出,所以后代可以看到关于主题 – 2011-03-07 10:56:34

回答

123

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

在你的榜样,你会怎么做:

.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速记全部。如果该属性从其父项或 继承到其初始值,则该关键字将 该属性重置为其继承值。换句话说,它在第一种情况下的行为与继承关键字 的行为相似,并且与 第二种情况中的初始关键字类似。

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

+0

对于引用链接 – 2011-03-07 10:55:47

+2

+1对于很好的答案和引用,我认为链接已更改为:https ://developer.mozilla.org/en-US/docs/Web/CSS/Reference – Paolo 2013-06-14 09:43:20

+0

当没有初始值(“initial value:none”)时,将该值设置为auto似乎不起作用。例如,当我使用“max-width:auto”的时候,我得到了一个不匹配的属性值错误,我应该怎么做? – user1779563 2015-05-27 22:45:07

9

喜欢说一个类.c1的高度:40px;我如何摆脱这个高度属性?

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

在这种情况下,你会重新使用属性

height: auto; 

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

a { color: inherit } 
+3

的所有答案我会给+1,还有“继承”的价值,在一些高度以外的方面,继承更合适 – Ben 2011-03-07 10:50:30

+0

@本好点,加入并包括一个例子。 – 2011-03-07 10:54:54

+2

继承不能在旧的IE版本(如ie7 :() – meo 2011-03-07 10:59:48

2

要摆脱固定height属性,你可以将其设置为默认值:

height: auto; 
2

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

body .c1 { 
    height: auto; 
} 

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

6

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

+0

仅供参考:'height:initial;'在IE9中似乎不起作用。 – 2014-03-12 20:47:56

+0

身高:初始;即使在IE11似乎并没有工作...... – Picard 2017-01-17 10:05:02

+0

那么'初始'和'自动'和'unset'之间的区别是什么? – ExillustX 2017-08-28 09:38:02

2
.c1 { 
    height: unset; 
} 

CSS3加入unset值也解决了这个问题,并它比auto或更普遍的方法initial,因为它设置为每一个CSS属性的默认值,另外它的默认behawior相对于其父。

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

MDN

像其他两种CSS-广泛的关键字,就可以应用到任何CSS属性,包括CSS缩写all。如果该属性继承自其父项,则将该属性重置为其继承的值,否则将该属性重置为其初始值。

1

我有一个问题,即使当我将“高度”改写为“未设置”或“初始”时,其行为与我删除先前设置时的行为不同。

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

height: unset; 
min-height: none 

编辑:我的IE 7测试,它不承认“未设置”,所以“自动”效果更好”