是否可以重置所有继承的CSS属性?

时间:2013-09-18 16:47:43

标签: html css

如何在CSS文件中重置类的所有继承属性?我需要能够在没有预定义属性的元素上设置新属性。

这只能使用CSS吗?

我不是在谈论CSS重置,例如:

body {
    margin:0px;
    padding:0px;
}

4 个答案:

答案 0 :(得分:4)

  

简单回答 - 你不能。

除非您使用更具体的内容覆盖所有属性,否则无法有效地执行此操作。这非常多余,我不建议这样做。

相反,你应该完全避免这种情况。不要首先设置属性,否则你不会遇到这个问题。

此外,执行其他人的建议并使用!important这是一种不好的做法。

答案 1 :(得分:2)

类无法继承属性。继承是通过父元素的DOM树完成的。只有在要继承元素的默认样式时,或者您已明确说明some-property: inherit;时,才会发生这种情况。

如果您询问如何从CSS规则集中停止具有与应用中给定元素匹配的选择器的规则,则可以使用the initial value。请注意:

  • 这是来自工作草案规范,因此浏览器支持可能很弱到不存在(我没有看到任何文档或对它的支持级别执行任何测试)
  • 您仍需要使用更具体的选择器(或其他方法来赢取级联),以覆盖任何其他样式。

尽管如此,你可能最好重写样式表,使其在影响的元素中不那么广泛。这种方法肯定会得到最好的浏览器支持。

答案 2 :(得分:1)

你无法重置css属性,你可以逐个覆盖你的css属性,到目前为止没有任何自动。

* {
    property:inherit
    ...
    ... long list of all .css properties ...
    propertyZ:inherit
}

并且可能(希望))很快就会出现:initial

请参阅此答案:Reset/remove CSS styles for element only

答案 3 :(得分:1)

您不能重置属性,因为它们将始终被继承

您可以使用!important

确定覆盖

例如:

childselector
{
   height:auto !important;
}