3 回答
TA贡献1744条经验 获得超4个赞
这背后的原因是 CSS 属性继承。所有 HTML 元素对于所有 CSS 属性都有一组默认值。
颜色属性通常设置为“继承”,因此,子元素将继承该属性的父元素值,除非子元素明确地将该属性设置为另一个值。
另一方面,边框属性没有“继承”,因为它是默认行为,因此不会继承父值,除非您也专门设置了它。
希望这可以帮助!
TA贡献1863条经验 获得超2个赞
在 CSS 中,继承控制在没有为元素的属性指定值时发生的情况。参考任何 CSS 属性定义以查看特定属性是否默认继承 ("Inherited: yes") 或不继承 ("Inherited: no")。
从继承 - CSS:级联样式表 | MDN
并非所有属性都是默认继承的,color例如是,但border不是。您必须参考文档(如MDN或w3schools)以了解属性是否设置为默认继承。
但是,您可以使用关键字 value 显式设置元素属性以继承其父属性的值inherit,如下所示:
.parent {
border: 1px solid red;
}
.child {
border: inherit;
}
<div class="parent">
Some text
<div class="child">Child element</div>
<div class="child">Child element</div>
</div>
/!\继承不要与级联混淆,级联是定义应用于多个选择器所针对的元素的样式声明的机制。
添加回答
举报
