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>
/!\繼承不要與級聯混淆,級聯是定義應用于多個選擇器所針對的元素的樣式聲明的機制。
添加回答
舉報