inherit是個好東西,不僅節約代碼,尤其與background之流打交道;而且還利於維護。
不過,如果想要繼承background的圖片,不能這樣縮寫,會顯得很天真:
background: #fff inherit left top;
可以這樣子:
background-image: inherit;
height:100%和height:inherit的異同
1. 相容性差異
height:100% IE6+ √
height:inherit IE8+ √
2. 大多數情況作用是一樣的
除去相容性,大多數情況下,兩者作用是一樣的,甚至都很難想出不一樣的理由。
① 父容器height: auto,無論height:100%或者height:inherit表現都是auto.
② 父容器定高height: 100px,無論height:100%或者height:inherit表現都是100px高.
難道沒有差異嗎?難道沒有使用height:inherit的理由嗎?當然有,記住,江湖上所發生的一切事情,都絕非偶然!
3. 絕對位置大不同
當子項目為絕對位置元素,同時,父容器的position值為static的時候,呵呵呵,height:100%和height:inherit的差異就可以明顯體現出來了!
呵呵
您可以狠狠地點擊這裡:height:100%和height:inherit差異demo
CSS如下:
| 代碼如下 |
複製代碼 |
.outer { display: inline-block; height: 200px; width: 40%; border: 5px solid #cd0000; } .height-100 { position: absolute; height: 100%; width: 200px; background-color: #beceeb; } .height-inherit { position: absolute; height: inherit; width: 200px; background-color: #beceeb; } |
HTML如下:
| 代碼如下 |
複製代碼 |
<div class="outer"><div class="height-100"></div></div> <div class="outer"><div class="height-inherit"></div></div> |
結果,height:100%的衝破雲霄,哦,不對,是深入地區地獄:
而height:inherit卻完美高度自適應沒有定位特性的父級元素:
對絕對位置有所瞭解的應該都知道原因,我就不解釋了。
總之,這裡,height:inherit的強大好用可見一斑。回頭,容器高度變化了,裡面的絕對位置元素依然高度自適應。這是很贊的特性,因為如果頁面很複雜,避免使用position: relative會讓你少去很多z-index混亂層級覆蓋的麻煩。