關於元素層級的一些介紹

2022-07-08 10:48:20 字數 3821 閱讀 7312

說起瀏覽器中的元素層級,我們首先能想到的就是z-index,position(值非static)+z-index結合使用,即可控制元素在瀏覽器中的顯示層級。那除了這種方式外,還有其他什麼方式可以控制元素的層級呢?

7階層疊水平

任何元素都有層疊順序,當元素發生層疊時,層級高的會顯示在上面,覆蓋層級低的元素。當元素的層級相同時,則會根據dom的先後順序依次顯示。層疊優先順序如下圖所示。(網上找的)

也就是說,當元素發生層疊時,除了z-index設定層級外,display:inline-block > float:left > display:block 也可以控制元素的層級顯示。經過例子驗證,當元素有內容時,內容的層級會更高。

層疊上下文

官方解釋:層疊上下文是html元素的三維概念,這些html元素在一條假想的相對於面向視點或者網頁的使用者的z軸上延伸,html元素依據其自身屬性按照優先順序順序佔據著層疊上下文的空間。 頁面的根元素具有根層疊上下文。

當元素有層疊上下文時,其層級比普通元素(block元素,float元素等)要高。通過給元素設定如下屬性即可讓元素擁有層疊上下文環境。

1.定位元素中z-index不等於auto,為大於0的值

2.元素設定opacity為不等於1的值

3.元素的transform屬性不為none

4.will-change指定的屬性值為上面任意乙個

還有其他的方法,上面的四種是較常用的。給元素設定上面這些屬性後,即可提高元素的層級。提高的層級在z-index:0的位置。當元素都有較高的z-index值時,層疊順序按值的高低排列。當我們遇到元素層疊的現象時,找出元素是屬於哪個層級的,修改元素的屬性或者建立層疊上下文來調整元素的層級。

注意事項:

>層級上下文

title

>

<

style

>

body

.box

.wrap

.wrap-1

.wrap-2

.wrap-3

.wrap-4

.wrap-5

.wrap-6

.wrap-6-1

.wrap-6-1 .cnt

.wrap-6-2

.wrap-6-2 .cnt

style

>

head

>

<

body

>

<

div

class

="box"

>

<

h2>demo1:七個層級的元素

h2>

<

div

class

="wrap wrap-1"

>z-index:-1的層

div>

<

div

class

="wrap wrap-2"

>display:block的層

div>

<

div

class

="wrap wrap-3"

>float的層

div>

<

div

class

="wrap wrap-4"

>display:inline-block的層

div>

<

div

class

="wrap wrap-5"

>z-index:auto/0的層

div>

<

div

class

="wrap wrap-6"

>z-index > 0的層

div>

div>

<

div

class

="box"

>

<

h2>demo2:inline-block的元素層級比block要高

h2>

<

div

class

="wrap wrap-4"

>display:inline-block的層

div>

<

div

class

="wrap wrap-2"

>display:block的層

div>

div>

<

div

class

="box"

>

<

h2>demo3:使用opacity使元素擁有層疊上下文

h2>

<

div

class

="wrap wrap-4"

>display:inline-block的層

div>

<

div

class

="wrap wrap-2"

style

="opacity:0.8;"

>display:block的層

div>

div>

<

div

class

="box"

>

<

h2>demo4:使用transform使元素擁有層疊上下文

h2>

<

div

class

="wrap wrap-4"

>display:inline-block的層

div>

<

div

class

="wrap wrap-2"

style

="transform:rotate(3deg);"

>display:block的層

div>

div>

<

div

class

="box"

>

<

h2>demo5:不同父元素的子節點的層級比較

h2>

<

div

class

="wrap wrap-6 wrap-6-1"

>

<

div

class

="cnt"

>z-index:2,子元素z-index:2的層

div>

div>

<

div

class

="wrap wrap-6 wrap-6-2"

>

<

div

class

="cnt"

>z-index:1,子元素z-index:100的層<

div>

div>

div>

body

>

html

>

參考: 

關於apt cache 的一些介紹

apt cache是乙個apt軟體包管理工具,它可查詢apt的二進位制軟體包快取檔案。通過它我們可查詢軟體包的狀態資訊。apt cache show package name 顯示軟體的資訊,包括版本號,安裝狀態和包依賴關係等。apt cache search package name 搜尋軟體包,...

關於Log 的一些介紹

1 log.v 的除錯顏色為黑色的,任何訊息都會輸出,這裡的v代表verbose囉嗦的意思,平時使用就是log.v 2 log.d的輸出顏色是藍色的,僅輸出debug除錯的意思,但他會輸出上層的資訊,過濾起來可以通過ddms的logcat標籤來選擇.3 log.i的輸出為綠色,一般提示性的訊息inf...

關於Linux使用者的一些介紹

基本知識 linux會用一些使用者識別符號來表示沒乙個使用者,包括使用者的id和使用者所屬於的組。重要的有兩個id 使用者id uid 使用者組id gid id與賬號的對應關係在 etc passwd中。新增使用者 useradd 例 新增使用者test,終端輸入useradd test後,hom...