background: background-color background-image background-repeat background-attachment background-position
1.關(guān)于層疊順序
關(guān)于層疊順序這個(gè)概念,我覺得是必須出現(xiàn)多個(gè)元素?fù)屨纪粋€(gè)布局位置的這一個(gè)前提,否則就不需要控制它們?cè)趜軸上的位置了。也就是說,z-index就是控制一個(gè)元素在z軸上的顯示順序。
2.明確一下什么叫做搶占同一個(gè)布局位置
問:正常流布局中的父子元素有搶占同一個(gè)布局位置嗎?要知道他們?cè)趚y平面上有重疊的地方,盡管如此,但是在這里我們并不把這稱為有搶占同一個(gè)布局位置。那么什么時(shí)候出現(xiàn)的位置重疊才叫做搶占了同一個(gè)布局位置呢?我的理解(不知道正確與否)是這樣的:在兩個(gè)元素在DOM結(jié)構(gòu)上不是父子之間關(guān)系(包括祖先與子孫一級(jí)的關(guān)系)的前提下,如果某個(gè)元素被某些css屬性設(shè)置使其脫離了文檔流,并且之后移位到了某個(gè)地方和某個(gè)元素在平面中有重合情況的話,那么就叫做搶占了同一個(gè)布局位置。
3怎么讓多個(gè)元素競(jìng)爭(zhēng)同一個(gè)布局位置
很多種方法,比如說使用非static,relative的定位,讓多個(gè)元素去競(jìng)爭(zhēng)同一個(gè)位置。它們都是從標(biāo)準(zhǔn)流中脫離出來了。因此在布局上會(huì)出現(xiàn)這種復(fù)雜的情況。那么問題來了,使用浮動(dòng)元素來設(shè)置多個(gè)元素競(jìng)爭(zhēng)同一個(gè)布局位置是否可行呢?答案是不行的,為什么呢?因?yàn)殡m然浮動(dòng)元素脫離了文檔流,但是它仍然會(huì)影響后續(xù)布局,我們都知道浮動(dòng)元素會(huì)使得元素呈現(xiàn)出塊元素的模式,但是依我愚見我覺得是float是會(huì)使得元素變?yōu)閕nline-block。還有一個(gè)問題:為什么relative也不行呢?因?yàn)閞elative定位會(huì)使得元素保留原來的位置,也就是說如果自己原本屬于block的話,那么設(shè)置為relative的話仍舊是block,若屬于inline的話,那么設(shè)置為relative的話仍舊為inline的。
關(guān)于這些元素的包含塊的問題,以前的筆記也提到過,這里就再寫一下吧。爛筆頭還是具有一點(diǎn)效應(yīng)的。
relative||static:距離自己最近塊元素的元素框(參見css權(quán)威指南p308,這個(gè)框我理解為border-box)、表單元格或者距離自己最近的祖先級(jí)行內(nèi)元素的content-box。
absolute:距離自己最近的祖先級(jí)position非static的元素:
- 1.若為內(nèi)聯(lián)元素,那么則是這個(gè)內(nèi)聯(lián)元素的content-box
- 2.若為塊元素,那么則是這個(gè)塊元素的padding-box
float:距離自己最近的塊級(jí)祖先元素。
先看看張?chǎng)涡窭蠋熽P(guān)于z-index的解釋