4

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

这可能只使用CSS吗?

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

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

4 回答 4

4

简单的答案 - 你不能。

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

相反,您应该完全避免这种情况。不要一开始就设置属性,你就不会有这个问题。

另外,不要做其他人建议的事情,使用!important这是一种不好的做法。

于 2013-09-18T16:50:27.337 回答
2

类不能继承属性。继承是通过父元素的 DOM 树完成的。仅当元素的默认样式是继承时,或者您明确表示时,才会发生这种情况some-property: inherit;

如果您询问如何阻止来自具有匹配给定元素的选择器的 CSS 规则集中的规则应用,那么您可以使用initialvalue。注意:

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

您可能最好重写您的样式表,使其首先影响的元素不那么广泛。这种方法肯定会有最好的浏览器支持。

于 2013-09-18T16:54:32.167 回答
1

您无法重置 css 属性,您可以一个一个地覆盖您的 css 属性,目前还没有自动的。

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

也许(希望))即将推出:初始

看到这个答案:Reset/remove CSS styles for element only

于 2013-09-18T16:57:09.863 回答
1

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

您当然可以使用!important覆盖它们

前任:

childselector
{
   height:auto !important;
}
于 2013-09-18T16:58:02.010 回答