對Conten:”\20”、zoom:1及z-index: 1的理解

1、Conten:”\20”

.clear:after{
content:”\20;
Display:block;
Height:0;
Clear:both;
}

Content:’\20’;的意思是在.clear這個元素的後面加上一個空格,把\20改成020也是可以的,這整段CSS是在瀏覽器中創建一個分隔欄,把上下DIV隔開,避免DIV發生錯位。但是如果單純使用clear:both的話,就會產生一些瀏覽器兼容上的bug,而用content:”\20”的方式就是在DIV後面人工添加一個空格,這樣就可以解決這一類的瀏覽器兼容問題。

2、zoom:1

是IE瀏覽器的專有屬性,FF等其它瀏覽器不支持。它可以設置或檢索對象的縮放比例。除此之外,它還有其他一些小作用,比如觸發IE的hasLayout屬性,清除浮動、清除margin的重疊等。但是很遺憾,它通不過W3C驗證。

3、 z-index: 1

概念:

z-index屬性設置元素的堆疊順序。數值越大越顯示在上面;僅能在定位元素上湊效(例如:absolute,relative,fixed)
以divA、divB、divA-1、divB-1爲例(代碼順序爲divA在上,divB在下,divA是divA-1的子層,divB-1是divB的子層,divA、divB是同級)

層級關係的比較:

  1. 對於同級元素,默認(positive:static)情況下divB會覆蓋divA。
  2. 對於同級元素,position不爲static且z-index存在的情況下z-index大的元素覆蓋z-index小的元素,即z-index越大優先級越高。
  3. IE6/7下position不爲static,且z-index不存在時z-index爲0,除此之外的瀏覽器z-index爲auto。
  4. z-index爲auto的元素不參與層級關係的比較。

定位規則:

如果position設爲relative(相對定位),absolute(絕對定位)或者fixed(固定定位),這樣的節點會覆蓋沒有設置position屬性或者屬性值爲static的節點,說明前者比後者的默認層級高。
在沒有z-index屬性干擾的情況下,我們可以做出更加複雜的結構。這裏我對divA和divB都不設定position,但對divA的子節點divA-1設定position:relative。根據順序規則,divB會覆蓋divA,divA-1又會覆蓋divB

默認值規則

如果所有節點都定義了position:relative. z-index大於等於1的節點會覆蓋沒有定義z-index的節點;z-index的值爲負數的節點將被沒有定義z-index的節點覆蓋。

從父規則

如果divA、divB節點都定義了position:relative,divA節點的z-index比divB節點大,那麼divA-1必定會覆蓋divB-1。
如果所有節點都定義了position:relative,divA節點的z-index和divB節點一樣大,但因爲順序規則,divB覆蓋在divA前面。就算divA-1的z-index值比divB-1的大,divB-1還是會覆蓋在divA-1的前面。
很多人將z-index設的很大,9999什麼的,如果不考慮父節點的影響,設的在大也是沒有用的。

運用javascript

如果你希望通過javascript爲一個元素動態的加上z-index屬性,其語法同其他大部分CSS元素能被存取類似,就是使用“駝峯命名法”取代CSS屬性中的連字符,就像下面的代碼展現的那樣。

var myElement=document.getElementById(“ID”) ;
myElement.style.position=”relative”;
myElement.style.zIndex=”9999;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章