?
This document uses PHP Chinese website manual Release
語法:
z-index: auto | <integer>
默認值:auto
適用于:定位元素。即定義了position為非static的元素
繼承性:無
動畫性:當值為<integer>時
計算值:指定的值
媒體:視覺
取值:
auto:元素在當前層疊上下文中的層疊級別是0。元素不會創(chuàng)建新的局部層疊上下文,除非它是根元素。
<integer>:用整數(shù)值來定義堆疊級別??梢詾樨撝?。
說明:
檢索或設置對象的層疊順序。
z-index用于確定元素在當前層疊上下文中的層疊級別,并確定該元素是否創(chuàng)建新的局部層疊上下文。
每個元素層疊順序由所屬的層疊上下文和元素本身的層疊級別決定(每個元素僅屬于一個層疊上下文)。
同一個層疊上下文中,層疊級別大的顯示在上面,反之顯示在下面。
同一個層疊上下文中,層疊級別相同的兩個元素,依據(jù)它們在HTML文檔流中的順序,寫在后面的將會覆蓋前面的。
不同層疊上下文中,元素的顯示順序依據(jù)祖先的層疊級別來決定,與自身的層疊級別無關。
當z-index未定義或者值為auto時,在IE6,7下會創(chuàng)建新的局部層疊上下文,而在高級瀏覽器中,按照規(guī)范不產(chǎn)生新的局部層疊上下文,如下例:
demo:
div { position: relative; } p { position: absolute; } .a { background: #f00; z-index: 10; } .b { background: #0ff; z-index: 3; } <div class="test"> <p class="a">asdas</p> </div> <div class="test2"> <p class="b">asdas</p> </div>
細心的你會發(fā)現(xiàn)上述代碼在IE6,7下的呈現(xiàn)與高級瀏覽器下不同。.test1和.test2未設置z-index,在高級瀏覽器下不會產(chǎn)生新的局部層疊上下文,也就是說它們的子元素沒有被新的局部層疊上下文包裹,那么它們的子元素就處在同一個層疊上下文中,可以直接通過自身的層疊級別來決定顯示順序,所以結(jié)果是.a 覆蓋了.b,因為.a的層疊級別比.b高;而在IE6,7下,.test1和.test2會產(chǎn)生新的局部層疊上下文,即它們的子元素被新的局部層疊上下文包裹,于是子元素顯示順序只能依賴.test1和.test2層疊級別來確定。所以結(jié)果是.b 覆蓋了.a,因為.b的父元素.test2在HTML文檔流中排在.test1之后,后來者居上覆蓋前者。參見demo: z-index創(chuàng)建局部層疊上下文在IE6,7下與高級瀏覽器下的區(qū)別
對應的腳本特性為zIndex。
兼容性:
示例:
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="utf-8" /> <title>z-index_CSS參考手冊_web前端開發(fā)參考手冊系列</title> <meta name="author" content="Joy Du(飄零霧雨), dooyoe@gmail.com, www.doyoe.com" /> <style> .z1, .z2, .z3 { position: absolute; width: 200px; height: 100px; padding: 5px 10px; color: #fff; text-align: right; } .z1 { z-index: 1; background: #000; } .z2 { z-index: 2; top: 30px; left: 30px; background: #C00; } .z3 { z-index: 3; top: 60px; left: 60px; background: #999; } </style> </head> <body> <div class="z1">z-index:1</div> <div class="z2">z-index:2</div> <div class="z3">z-index:3</div> </body> </html>
點擊 "運行實例" 按鈕查看在線實例