CSS 背景屬性不能繼承怎麼理解?

在w3school上面看到所有背景屬性都不能繼承,不知道怎麼理解。 初學者,求大神指點。


不存在不能繼承的屬性。CSS 的每個屬性都有一個「是否繼承(inherited)」的特性(嚴格來說是「是否默認繼承」)。對於 inherited 為 yes 的屬性,如果沒有對其進行過設置,就會默認使用父元素同一屬性的計算值(computed value)。否則,就會使用改屬性的初始值(initial value)。

但如果你使用 inherit 關鍵字,就可以顯式讓屬性繼承父元素的計算值。

比如說文字相關的屬性,一般都默認繼承(即 inherited 為 yes),這樣外邊元素設置好,內部就自然跟著生效了。而邊框如果默認繼承,你可以想像一下效果,顯然不妥當。所以每個 CSS 屬性值在設計的時候都會考慮好是否默認繼承。你所說的「不能繼承」實為「不默認繼承」。


你手動把一堆元素的background-image都設置成inherit看看效果就知道了。


子是一定覆蓋在父上面的,你要繼承背景色幹啥。。。父天生就是子的背景了,除非你用定位把子移出去。。。我也是剛學,說錯了勿怪


子元素不繼承父元素的背景顏色,通常默認顯示為transparent,所以平常看到的背景顏色可能是父元素的。你也可以設置background:inherit;將背景色設置為和父元素一樣的顏色,不要認為inherit翻譯為繼承就認為兩者有繼承關係。假設你為父元素插入一個背景圖片,難道每個子元素的背景里都會插入同一張照片,顯然這樣是不合理的。同時你還可以試試background:currentColor,將背景顏色設置為當前字體的顏色,這樣設置沒有什麼實際意義,但理解背景的繼承關係可能有點用


你可想像下,body設置一個background為大黃圖之後,然後各個元素節點的背景都是一樣的大黃圖!之後每個元素節點都要設置一個background:#FFF;····好可憐····那時候光設置背景都要一天時間了


推薦閱讀:

不用vh,vw,vmin,vmax,rem,em單位,不用js,如何獲得一個鎖定高寬比的響應式盒子?
二八原則中的css?
輸入框里那個一閃一閃的游標如何改變樣式?
如何加入w3c小組?
類似angularJS里的路由,有沒有類似的前端路由框架,我想實現左側導航不刷新,只刷新右側內容的界面?

TAG:CSS | HTMLCSS | CSS布局 |