2011-07-09 61 views
3

我怎样才能使一个CSS样式不影响该元素使CSS不会影响孩子

$<style type="text/css"> 
.parent { 
background-color: #0F0;} 
.child { 
    background-color:#fff 
} 
</style> 

<div class="parent">parent<div class="child">child</div>Parent2</div> 

(任何影响) 我知道你,你的“<”的风格只适用于儿童的儿童的某些父母,但风格只能应用于一个元素?

+0

你不能在CSS中“禁用”或“关闭”inhertiance。你可以做的最好的是“否定”它,如父母有颜色:红色;比孩子还会红。所以对孩子你可以设置颜色:黑色;只有一些(而不是全部)CSS属性被继承。 – Jawad

+0

@Jawad在这种特殊情况下,'background-color'属性值是* not * inherited([它不会继承](http://www.w3.org/TR/css3-background/#the-background )),所以这个问题不是关于继承。 –

+0

这可能是内容丰富的:http://stackoverflow.com/questions/4481318/css-text-decoration-property-cannot-be-overridden-by-ancestor-element –

回答

2

默认情况下,background-colortransparent。如果我能正确理解你的问题,你就会通过孩子的透明背景看到父母的背景。唯一的解决办法是将孩子的背景设置为你想要的颜色。

3

从技术上讲,您的代码不适用/影响孩子的风格。它看起来像是因为用css标记呈现的方式。因此,您的“孩子”DIV没有应用#0F0背景颜色,但由于默认情况下它们是透明的,所以它可能看起来像这样。

+0

或者我错过了这个问题的关键? – Kon

0

其实它并不是因为子元素都具有显示透视颜色的“无”背景。为了解决这个问题,你需要为与父代不相同的子元素定义一个颜色。

1

您不能,因此名称为“级联”样式表。你只需要覆盖你不想让孩子继承的任何属性。