有關 Z-index

在開始Z-index以前css

首先須要理解兩個概念,一是文檔,二是普通文檔流。html

我對文檔的理解是:用必定的方式把人類文明呈現出來,而且能夠複製來進行傳播,因此思想跟精神不能算文檔。瀏覽器

而書籍跟這篇帖子的主角——網頁都算做文檔。測試

 

      咱們所瀏覽的網頁,其實就是HTML或者XHTML或者XML文檔,它們之間的區別咱們暫時能夠不用考慮,咱們只須要考慮網頁文檔跟其餘文檔的區別。網頁文檔就是將文本內容以不一樣的方式組織起來、用不一樣的方式表現出來。爲了達到這一目的,咱們須要規範化用一些元素來固定地表現某一種方式,因而標籤便產生了。好比咱們須要一張表格來裝數據,那麼咱們定義一個<table></table>就產生一個表格,咱們即可以把文本數據放到這個標籤裏,文本內容便會以一個表格的方式表現出來,其餘相似,咱們須要表現一張圖像,便用<img>,須要一個列表,用<ul></ul>。(若是直接把文本放到HTML文檔中,會默認給他加上一個塊級標籤,詳情見《精通CSS 高級Web標準解決方案第二版》P44,感謝崔瑜琢兄,他送了我這本書)ui

 

       當咱們用這些標籤把咱們的內容組織起來後,便交給瀏覽器解析,瀏覽器解析後即是咱們看到的網頁了。(不一樣的瀏覽器解析的結果不一樣,這就是瀏覽器差別性)spa

 

這些標籤在文檔裏會安分地排列,都會依據本身所包含的內容井水不犯河水地排列。例如,塊級元素會一行一行地排列,行級元素會挨次排成一行。它們都有本身的區域,彼此不產生交集,這就是普通文檔流。xml

 

有兩種方式能夠打破普通文檔流的方式,讓他們的排列有一點點小小的錯動,這就是浮動跟定位。這種錯動極可能是兩個標籤重疊到一塊兒去了,那麼讓誰顯示出來呢,誰擋住誰呢。因而Z-index出場了。htm

 測試代碼以下:blog

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Z-index</title>
<style type="text/css">

div{width:200px;
height:200px;
}
body{
padding:20px;
z-index:auto;
}
#div1{
z-index:auto;
background:#000;
position:absolute;
top:0;
left:0;
color:#FFF;
}
#div2{
z-index:1;
background:#999;
top:80px;
left:80px;
position:absolute;
}
#div3{
z-index:1;
background:#000;
color:#FFF;
top:80px;
left:80px;
position:absolute;
}
#div4{
z-index:1;
background:#0CF;
color:#03F;
top:180px;
left:250px;
position:absolute;
width:100px;
height:100px;
}
#div5{
z-index:auto;
background:#CC0;
color:#03F;
top:260px;
left:280px;
position:absolute;
width:100px;
height:100px;
text-align:right;
}
#div6{
z-index:auto;
background:#33C;
color:#FFF;
top:280px;
left:300px;
position:absolute;
text-align:right;
}
</style>
</head>

<body>
<div id="div1">div1</div>
<div id="div2">
div2
<div id="div3">
div3
</div>
<div id="div4">div4</div>
<div id="div5">div5</div>
</div>
<div id="div6">div6</div>
</body>
</html>

 FF9.0.1測試圖:utf-8

最後獲得的結論是:

1.取值爲auto跟取值爲0效果是同樣的。

2.元素在文檔中的疊加順序跟他們的父元素在文檔中的順序有關,也就是說,若是他們的父元素比他們的叔伯(也有多是舅舅)元素層疊次序高,那麼他們在文檔中的總體層疊次序就高——比他們的叔伯還高——而不用管他們自己的Z-index跟他們的叔伯的Z-index大小

3.若是他們同輩,那麼就取決於他們自身的Z-index,負數最小,0次之,正數最大,越大越往上疊。

4.若是全部同輩元素的Z-index取值都同樣,那麼誰最後出如今文檔中,層疊次序就最高。

5.子元素總比父元素的層疊次序高,無論他們的Z-index取值多少。

 

PS:相對定位是相對於元素在普通文檔流中原本佔據的位置來定位

        絕對定位是相對於最近的一個已定位的父輩元素,絕對定位相對定位都可

        固定定位是相對於瀏覽窗口來定位,不管怎麼拖動右邊或者底部的滑條,位置都不變

 

如有錯誤,歡迎大牛批評指正!

相關文章
相關標籤/搜索