我的问题很简单,我只需要知道这是否可行。
这是我的HTML&的简单版本。 css代码
HTML:
<div class="parent">
<div class="ch1">CHILD 1</div>
<div class="ch2">CHILD 2</div>
</div>
CSS:
.parent {background-color:red}
我想知道是否可以阻止“继承 背景颜色属性的CHILD1 div从其父元素
P.S。我的意思并不是要覆盖那个属性,而是要阻止继承,因为它从来没有 background-color 属性。
谢谢
答案 0 :(得分:2)
https://developer.mozilla.org/en-US/docs/Web/CSS/background-color
background-color不是继承的,默认值是透明的。因此父类的背景颜色将被视为为子项设置。
初始值:透明 适用于:所有元素 继承:否
答案 1 :(得分:2)
孩子实际上并没有继承背景色。孩子的背景是透明的。你看到一个红色的背景,因为它坐在红色的顶部,但这对孩子来说没有任何意义;如果你把它放在它的父母之外它就不会有红色背景。
你实际上要求的是让子元素在父母的背景中切出一个洞,以便它背后的元素显示出来。是吗?
如果这就是你所追求的,那么不,你不能这样做。
最接近它的是clip
CSS属性。
您可以将父级CSS上的clip
定义为一个矩形,它覆盖与子元素相同的空间。 (当然,你必须提前知道孩子的尺寸才能做到这一点)
这将是实现你所追求的目标的一种方式,但clip
确实有一些主要的限制,尤其是它只有在元素为position:absolute
或{{1}时才有效}}
您可以在此处详细了解position:fixed
:http://tympanus.net/codrops/2013/01/16/understanding-the-css-clip-property/
另一种选择可能是使用SVG而不是HTML。使用SVG更容易实现这种效果,因为它是一种适当的图形语言。
答案 2 :(得分:1)