日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

css中的z-index是什么

發(fā)布時間:2023/12/15 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 css中的z-index是什么 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

小編給大家分享一下css中的z-index是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

z-index 屬性設置元素的堆疊順序。擁有更高堆疊順序的元素總是會處于堆疊順序較低的元素的前面。

層級關系的比較

1. 對于同級元素,默認(或position:static)情況下文檔流后面的元素會覆蓋前面的。

2. 對于同級元素,position不為static且z-index存在的情況下z-index大的元素會覆蓋z-index小的元素,即z-index越大優(yōu)先級越高。

3. IE6/7下position不為static,且z-index不存在時z-index為0,除此之外的瀏覽器z-index為auto。

4. z-index為auto的元素不參與層級關系的比較,由向上遍歷至此且z-index不為auto的元素來參與比較。

順序規(guī)則

如果不對節(jié)點設定 position 屬性,位于文檔流后面的節(jié)點會遮蓋前面的節(jié)點。

<div id="a">A</div>
<div id="b">B</div>

定位規(guī)則

如果將 position 設為 static,位于文檔流后面的節(jié)點依然會遮蓋前面的節(jié)點浮動,,所以 position:static 不會影響節(jié)點的遮蓋關系。

<div id="a" style="position:static;">A</div>
<div id="b">B</div>

如果將 position 設為 relative (相對定位),absolute (絕對定位) 或者 fixed (固定定位),這樣的節(jié)點會覆蓋沒有設置 position 屬性或者屬性值為 static 的節(jié)點,說明前者比后者的默認層級高。

<div id="a" style="position:relative;">A</div>
<div id="b">B</div>

在沒有 z-index 屬性干擾的情況下, 根據這順序規(guī)則和定位規(guī)則, 我們可以做出更加復雜的結構. 這里我們對 A 和 B 都不設定 position, 但對 A 的子節(jié)點 A-1 設定 position:relative. 根據順序規(guī)則, B 會覆蓋 A, 又根據定位規(guī)則 A' 會覆蓋 B.

<div id="a">
    <div id="a-1" style="position:relative;">A-1</div>
</div>
<div id="b">B</div>

上面互相覆蓋在什么時候用到這樣的實現(xiàn)? 看起來偏門, 其實很常用, 比如說, 電子商務網站側欄的類目展示列表就可以用這個技巧來實現(xiàn).

下圖是某網站的類目展示區(qū)域, 二級類目的懸浮層覆蓋一級類目列表外框, 而一級類目的節(jié)點覆蓋二級類目的懸浮層. 如果使用 CSS 實現(xiàn)展示效果, 一級類目的外框相當于上面例子中的 A, 一級類目的節(jié)點相當于 A-1, 二級類目的懸浮層相當于 B.

參與規(guī)則

我們嘗試不用 position 屬性, 但為節(jié)點加上 z-index 屬性. 發(fā)現(xiàn) z-index 對節(jié)點沒起作用. z-index 屬性僅在節(jié)點的 position 屬性為 relative, absolute 或者 fixed 時生效.

<div id="a" style="z-index:2;">A</div>
<div id="b" style="z-index:1;">B</div>
<div id="c" style="z-index:0;">C</div>

<div id="a" style="z-index:2;">A</div>
<div id="b" style="position:relative;z-index:1;">B</div>
<div id="c" style="position:relative;z-index:0;">C</div>

默認值規(guī)則

如果所有節(jié)點都定義了 position:relative. z-index 為 0 的節(jié)點與沒有定義 z-index 在同一層級內沒有高低之分; 但 z-index 大于等于 1 的節(jié)點會遮蓋沒有定義 z-index 的節(jié)點; z-index 的值為負數的節(jié)點將被沒有定義 z-index 的節(jié)點覆蓋.

<div id="a" style="position:relative;z-index:1;">A</div>
<div id="b" style="position:relative;z-index:0;">B</div>
<div id="c" style="position:relative;">C</div>
<div id="d" style="position:relative;z-index:0;">D</div>

從父規(guī)則

如果 A, B 節(jié)點都定義了 position:relative, A 節(jié)點的 z-index 比 B 節(jié)點大, 那么 A 的子節(jié)點必定覆蓋在 B 的子節(jié)點前面.

<div id="a" style="position:relative;z-index:1;">
    <div id="a-1">A-1</div>
</div>
 
<div id="b" style="position:relative;z-index:0;">
    <div id="b-1">B-1</div>
</div>

如果所有節(jié)點都定義了 position:relative, A 節(jié)點的 z-index 和 B 節(jié)點一樣大, 但因為順序規(guī)則, B 節(jié)點覆蓋在 A 節(jié)點前面. 就算 A 的子節(jié)點 z-index 值比 B 的子節(jié)點大, B 的子節(jié)點還是會覆蓋在 A 的子節(jié)點前面.

很多人將 z-index 設得很大, 9999 什么的都出來了, 如果不考慮父節(jié)點的影響, 設得再大也沒用, 那是無法逾越的層級.

總結

以上是生活随笔為你收集整理的css中的z-index是什么的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。