如何更改元素的css但保留其子元素的默认值

时间:2012-06-05 06:06:08

标签: html css

我想为div设置某个字体系列,但我希望它的子项保留默认属性。这可能吗?

3 个答案:

答案 0 :(得分:1)

你不能,因为如果一个内部元素本身没有为特定属性设置任何值,如果在CSS规范中使用“Inherited:yes”定义该属性,它将不可避免地从其父元素继承它。从本质上讲,这就是继承的理念。

在很多情况下,作者确实希望保留属性的默认值,因为默认值取决于浏览器并且通常不合适(例如,font-family的最常见默认值是Times New Roman)。

您可能实际上意味着其他内容,例如保留在样式表中其他位置设置的属性值。这将是一个完全不同的问题,然后答案就是这种情况会自动发生。如果事情看起来不那样,原因可能是对级联的误解。如果您的span元素设置了一些属性,那么无论您为封闭的div元素设置了什么值,该值都将适用。但是span元素不会从body元素继承属性,除非可能间接(通过div元素)。

假设你真的想保留div元素中元素的默认值,这就是我在一个小动手练习页面上做的事情(用于CSS )。有一个div包含一些样本内容,需要进行样式设置,并且在开始时,它必须显示为无样式(除div的外部尺寸和边框外)。我这样做只是为了将我在页面上的所有其他内容分组到具有特定class属性的容器中。然后我只需为页面设置 all CSS设置,以便所有选择器都包含该类的类选择器。它有点笨拙,但很简单。

答案 1 :(得分:0)

设置元素的样式并为所有子元素重置:

#div {
  font-family: 'Inconsolata';
}

#div > * {
  font-family: sans-serif;
}

答案 2 :(得分:0)

我认为在没有为内部元素定义样式的情况下CSS没有可能实现这一点