background: background-color background-image background-repeat background-attachment background-position
1.關(guān)于層疊順序
關(guān)于層疊順序這個(gè)概念疟暖,我覺得是必須出現(xiàn)多個(gè)元素?fù)屨纪粋€(gè)布局位置的這一個(gè)前提扬舒,否則就不需要控制它們在z軸上的位置了。也就是說,z-index就是控制一個(gè)元素在z軸上的顯示順序瞧哟。
2.明確一下什么叫做搶占同一個(gè)布局位置
問:正常流布局中的父子元素有搶占同一個(gè)布局位置嗎脏答?要知道他們在xy平面上有重疊的地方尖淘,盡管如此萍摊,但是在這里我們并不把這稱為有搶占同一個(gè)布局位置。那么什么時(shí)候出現(xiàn)的位置重疊才叫做搶占了同一個(gè)布局位置呢山害?我的理解(不知道正確與否)是這樣的:在兩個(gè)元素在DOM結(jié)構(gòu)上不是父子之間關(guān)系(包括祖先與子孫一級的關(guān)系)的前提下纠俭,如果某個(gè)元素被某些css屬性設(shè)置使其脫離了文檔流,并且之后移位到了某個(gè)地方和某個(gè)元素在平面中有重合情況的話浪慌,那么就叫做搶占了同一個(gè)布局位置冤荆。
3怎么讓多個(gè)元素競爭同一個(gè)布局位置
很多種方法,比如說使用非static权纤,relative的定位钓简,讓多個(gè)元素去競爭同一個(gè)位置。它們都是從標(biāo)準(zhǔn)流中脫離出來了汹想。因此在布局上會出現(xiàn)這種復(fù)雜的情況外邓。那么問題來了,使用浮動元素來設(shè)置多個(gè)元素競爭同一個(gè)布局位置是否可行呢古掏?答案是不行的损话,為什么呢?因?yàn)殡m然浮動元素脫離了文檔流槽唾,但是它仍然會影響后續(xù)布局丧枪,我們都知道浮動元素會使得元素呈現(xiàn)出塊元素的模式,但是依我愚見我覺得是float是會使得元素變?yōu)閕nline-block庞萍。還有一個(gè)問題:為什么relative也不行呢拧烦?因?yàn)閞elative定位會使得元素保留原來的位置,也就是說如果自己原本屬于block的話挂绰,那么設(shè)置為relative的話仍舊是block屎篱,若屬于inline的話服赎,那么設(shè)置為relative的話仍舊為inline的葵蒂。
關(guān)于這些元素的包含塊的問題,以前的筆記也提到過重虑,這里就再寫一下吧践付。爛筆頭還是具有一點(diǎn)效應(yīng)的。
relative||static:距離自己最近塊元素的元素框(參見css權(quán)威指南p308缺厉,這個(gè)框我理解為border-box)永高、表單元格或者距離自己最近的祖先級行內(nèi)元素的content-box隧土。
absolute:距離自己最近的祖先級position非static的元素:
- 1.若為內(nèi)聯(lián)元素,那么則是這個(gè)內(nèi)聯(lián)元素的content-box
- 2.若為塊元素命爬,那么則是這個(gè)塊元素的padding-box
float:距離自己最近的塊級祖先元素曹傀。