中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS層疊上下文實例分析

發布時間:2022-03-14 13:53:34 來源:億速云 閱讀:132 作者:iii 欄目:web開發

這篇文章主要講解了“CSS層疊上下文實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“CSS層疊上下文實例分析”吧!

  一、現象

  Z 軸上的顯示順序

  // 穿透父級容器的 z-index

  <!-- 100 * 100 的深藍色 Block -->

  <div class="block blue" style="position: relative; z-index: auto;">

  <!-- 50 * 50 的紅色 Block -->

  <div class="small red" style="position: relative; z-index: -1;"></div>

  </div>

  // 不能穿透父級容器的 z-index

  <!-- 100 * 100 的深藍色 Block -->

  <div class="block blue" style="position: relative; z-index: 0;">

  <!-- 50 * 50 的紅色 Block -->

  <div class="small red" style="position: relative; z-index: -1;"></div>

  </div>

  兩段代碼基本一樣,只有在深藍色盒子處有個 z-index 不同。當父級容器的 z-index 為 auto 的時候,紅色盒子穿過了父級容器出現在了父級容器的背后(被父級容器遮擋住)。當父級容器的 z-index 為 0 的時候,紅色盒子無法穿過父級容器。

  元素 Z 軸對比

  // 元素 Z 軸對比

  <!-- 100 * 100 的深藍色盒子 -->

  <div class="block blue">

  <div style="position:relative;z-index:auto;">

  <!-- 50 * 50 的紅色盒子 -->

  <div class="small red" style="position:absolute; z-index:2;"></div>

  </div>

  <div style="position:relative;z-index:auto;">

  <!-- 50 * 50 的灰色盒子 -->

  <div class="small yellow" style="position:absolute; z-index:1; top: 10px;"></div>

  </div></div>

  // 元素 Z 軸對比

  <!-- 100 * 100 的深藍色盒子 -->

  <div class="block blue">

  <div style="position:relative;z-index:0;">

  <!-- 50 * 50 的紅色盒子 -->

  <div class="small red" style="position:absolute; z-index:2;"></div>

  </div>

  <div style="position:relative;z-index:0;">

  <!-- 50 * 50 的灰色盒子 -->

  <div class="small yellow" style="position:absolute; z-index:1; top: 10px;"></div>

  </div>

  </div>

  同樣的,以上兩段代碼基本一樣,都是有 3 層的 DIV 盒子。最外層是一個深藍色盒子,中間一層容器盒子,最下面一層紅色及灰色盒子。不同之處在于中間這層容器盒子的 z-index 由 auto 變成了 0。最底下的紅色及灰色盒子的 Z 軸層級比較的結果就截然不同。**由以上兩個例子我們可以發現,當 ****z-index 為數值并且生效的時候,容器會發生一種變化,會使得容器內的子組件無法穿過容器本身,并且子組件的層級由父組件決定。

  這種變化后的容器元素我們稱之為層疊上下文。

  二、特性

  層疊上下文有幾個特性層疊上下文可以嵌套,內部層疊上下文及其所有子元素均受制于外部的層疊上下文。

  這個好理解,可以參考例子 2 。當第二層的容器盒子升級為層疊上下文時,紅色盒子及灰色盒子的 Z 軸層級受制于第二層的容器盒子。

  每個層疊上下文和兄弟元素獨立,也就是當進行層疊變化或渲染的時候,只需要考慮后代元素。

  這一條在性能優化上可以用的上。在更新 DOM 元素的時候考慮上層疊上下文可以使得站點性能表現更加優異。

  層疊上下文未指定 z-index 時,其層疊等級與 z-index&mdash;&mdash;: 0 相同, 要比普通元素高。指定 z-index 時按照層疊規則來。

  這條專門指的由 CSS3 屬性創建出來的層疊上下文,其本身未指定 z-index。其層疊等級應該是 z-index: 0。

  三、創建

  層疊上下文大體上可分為三種創建方式1. 頁面根元素,稱為根層疊上下文 2. z-index 值為數值的定位元素的傳統層疊上下文3. 其他 CSS3 屬性(詳情可動手實驗了解)

  z-index值不為auto 的flex 項(父元素display:flex | inline-flex )

  元素的 opacity 值不是 1

  元素的 transform 值不是 none

  元素的 filter 值不是 none

  注意:1、z-index: auto 和 z-index: 0 在層疊等級上屬于同一級。但是 z-index: 0 就是符合這一條“z-index 為數值”會使得元素升級為層疊上下文。2、 IE6,7 有個不合常理的地方,就是當元素的 z-index 為 auto 的時候,該元素也升級為創建層疊上下文。這就是為什么在過去 IE6/IE7 的 z-index 一直是個老大難的原因。

  四、兩個概念:層疊順序、層疊等級

  在說層疊規則之前兩個概念需要大家了解一下,這有利于我們在日常交流中探討相關的問題。

  層疊順序( Stacking Order ),這個其實就是很字面的意思,它表示元素發生層疊時按照特定的順序規則在 Z 軸上垂直顯示順序。

  層疊等級( Stacking Level ),這個很好理解了。層疊等級就是個描述元素層疊順序的一個名詞,它決定了同一個層疊上下文中元素在 Z 軸上的顯示順序。舉個例子:A 元素與 B 元素重疊之后,A 元素在 B 元素上面。那么我們就可以直接說 A 元素的層疊等級大于 B 元素的層疊等級。

  五、層疊規則當元素互相層疊的時候,顯示規則如下。

  當互相層疊的元素都是層疊上下文元素,即明確的有 z-index 值的時候(沒有明確的z-index 值的層疊上下文也就是 CSS3 創建的層疊上下文 z-index 值為 0 )直接比較 z-index 的值,值大的處在值小的元素的上方。

  當元素處于同一層疊上下文內時可按照如下規則進行層疊判斷。

  當元素的層疊等級一致、層疊順序也相同的時候,在 DOM 流中處于后面的元素會覆蓋前面的元素。

感謝各位的閱讀,以上就是“CSS層疊上下文實例分析”的內容了,經過本文的學習后,相信大家對CSS層疊上下文實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

css
AI

涿鹿县| 虞城县| 绥阳县| 綦江县| 申扎县| 邓州市| 马龙县| 贵定县| 潼关县| 越西县| 常山县| 固安县| 黔江区| 齐齐哈尔市| 福海县| 鹤峰县| 连南| 定西市| 嘉兴市| 景宁| 梁平县| 六安市| 尼玛县| 积石山| 房产| 泽库县| 阜新市| 嵊州市| 洪泽县| 甘肃省| 资源县| 丁青县| 昭平县| 乡城县| 鹤壁市| 夹江县| 惠东县| 龙岩市| 西畴县| 崇义县| 栾城县|