定位
1.absolute絕對定位冈涧,通過left/top/right/buttom,以具有position屬性的父元素為參考進(jìn)行定位祖能,使用場景是需要相對于父元素或者<html>根節(jié)點(diǎn)進(jìn)行定位。
absolute偏移的參考點(diǎn)首先是父元素,然后檢查該父元素是否具有position屬性耘婚,若具有position屬性,則以該父元素為參考點(diǎn)進(jìn)行偏移怕犁,若不具有則繼續(xù)往上一級找边篮,查看其是否有position屬性,直到hrml標(biāo)簽為止還無奏甫,則以根節(jié)點(diǎn)html為參考點(diǎn)戈轿。
2.relative相對定位,通過left/top/right/buttom阵子,以自己的位置進(jìn)行定位思杯,使用場景是偏移前的位置需要保留,不脫離文檔流挠进。
relative偏移的參考點(diǎn)是自身位置色乾,是拿偏移前的位置與偏移后的位置進(jìn)行比較,比如top10px领突,表現(xiàn)出來的其實(shí)是向下移動10px暖璧。
3.fixed固定定位,通過left/top/right/buttom君旦,以瀏覽器窗口進(jìn)行定位澎办,使用場景是固定于瀏覽器的某個位置不動。
fixed偏移的參考點(diǎn)是瀏覽器窗口金砍。
注意:position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
position:relative發(fā)生偏移后局蚀,在文檔流中的位 置不變。
負(fù)margin會改變元素在文檔流中的位置恕稠。
z-index
因?yàn)轱@示器是顯示的圖案是一個二維平面琅绅,擁有x軸和y軸來表示位置屬性。為了表示三維立體的概念如顯示元素的上下層的疊加順序引入了z-index屬性來表示z軸的區(qū)別鹅巍。表示一個元素在疊加順序上的上下立體關(guān)系千扶。
z-index值較大的元素將疊加在z-index值較小的元素之上料祠。對于未指定此屬性的定位對象,z-index 值為正數(shù)的對象會在其之上县貌,而 z-index 值為負(fù)數(shù)的對象在其之下术陶。
z-index屬性適用于定位元素(position屬性值為 relative 或 absolute 或 fixed的對象),用來確定定位元素在垂直于顯示屏方向(稱為Z軸)上的層疊順序煤痕,也就是說如果元素是沒有定位的梧宫,對其設(shè)置的z-index會是無效的。
相同z-index誰上誰下
1.如果兩個元素都沒有定位發(fā)生位置重合現(xiàn)象或者兩個都已定位元素且z-index相同發(fā)生位置重合現(xiàn)象摆碉,那么按文檔流順序塘匣,后面的覆蓋前面的。
2.如果兩個元素都沒有設(shè)置z-index巷帝,使用默認(rèn)值忌卤,一個定位一個沒有定位,那么定位元素覆蓋未定位元素
父子關(guān)系處理
1.如果父元素z-index有效楞泼,那么子元素?zé)o論是否設(shè)置z-index都和父元素一致驰徊,會在父元素上方
2.如果父元素z-index失效(未定位或者使用默認(rèn)值),那么定位子元素的z-index設(shè)置生效