国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

css - 子元素的z-index如何高于父元素的兄弟元素的z-index值?

瀏覽:88日期:2023-06-16 13:19:18

問題描述

1.文字描述如下:

有A、B兩個同級p,A的z-index為888,B的z-index為999,A下有H,z-index為1000,但是發現H并沒有在B的上層,不改變層次結構能否使H在B的上層?

2.代碼描述如下

<p class=’A’ style='background-color:rgba(0, 0, 0, 0.9);position: absolute;z-index: 888;'> <h1 class=’H’ style='position: absolute;color: #fff;z-index: 1000;display: block;'>This is a heading </h1></p><p class=’B’ style='position: absolute;height: 100%;width: 100%;background: #000;z-index: 999;'></p>

3.可以改變任意樣式,但是不能改變(A>H,B)的層次結構以及他們的z-index,如何使得H在B之上?

4,劃重點!!!!

僅不能改變(A>H,B)的層次結構以及他們的z-index,其他style隨便,包括但不限于position、width,height隨便改,隨便加,隨便減”僅不能改變(A>H,B)的層次結構以及他們的z-index,其他style隨便,包括但不限于position、width,height隨便改,隨便加,隨便減”僅不能改變(A>H,B)的層次結構以及他們的z-index,其他style隨便,包括但不限于position、width,height隨便改,隨便加,隨便減”

問題解答

回答1:

css - 子元素的z-index如何高于父元素的兄弟元素的z-index值?

根據規范,z-index是應用到定位元素的,也就是position屬性不為relative的元素,否則,設置z-index是沒有意義的;z-index的作用有兩點,一是設置在當前堆疊上下文(stacking context)中的層級;二是創建一個新的堆疊上下文;z-index并不是設置的值越高,就會越靠近用戶,還和堆疊上下文有關系;

在同一個堆疊上下文中的元素,z-index越高越靠近用戶;

在不同堆疊上下文中的元素,如果堆疊上下文一距離用戶更近,那么它的所有子元素都在另一個堆疊上下文子元素的前面,也就是離用戶更近,不同堆疊上下文中的子元素不可能發生交叉;

所以,z-index其實不是一個絕對值,而是一個相對值;

舉例如下:

<body><p class='p1'> <p class='p1p1'><p class='p1p1p1'></p> </p></p><p class='p2'> <p class='p2p1'></p></p> </body>

body { margin: 0;}.p1 { width: 700px; height: 700px; background: red;}.p1p1 { width: 300px; height: 300px; background: green; position: absolute; top: 0px; left: 0px; z-index: 500;}.p1p1p1 { width: 200px; height: 200px; background: yellow; position: absolute; z-index: 10;}.p2 { width: 600px; height: 600px; background: pink; position: absolute; z-index: 400; top: 0;}.p2p1 { width: 500px; height: 500px; background: blueviolet; position: absolute; z-index: 800;}

css - 子元素的z-index如何高于父元素的兄弟元素的z-index值?

對于.p1p1p1和.p2p1,雖然后者的z-index(800)高于前者(10),但是因為前者所在的堆疊上下文(.p1p1)的z-index(500)高于后者所在的堆疊上下文(.p2p1)的z-index(400),所以前者是在后者上面的。

評論里面你設置p{z-index:9;position:relative;}會建立一個新的堆疊上下文,和p同級的元素是0,img元素是9 -1,因為9>0,所以img是在上面的。

按照你的題目,其實position屬性是不能改的,如果把position屬性改為relative,那你的z-index屬性其實就不起作用了,在z-index都起作用的情況下,是沒有辦法達到你的要求的,理由如下:

A 888H 888 1000B 999

A, B和H的層級如上,因為888 < 999,所以A和H都在B的下邊。

回答2:

不能。因為你的H和B都是position: absolute,可以認為,絕對定位的元素在z軸上的偏移量遠遠大于z-index可以設置的量(可以認為絕對定位元素有著無窮大的z偏移)。因此,H和B兩個元素的z-index實際上并不起到任何作用。

去掉了position: absolute之后,代碼如下

<p class=’A’ style='background-color:blue;height:100px;margin-bottom: -200px;padding: 30px;display:block;z-index: 888;'> <h1 class=’H’ style='color: #fff;z-index: 1000;margin-top: 60px;display: block;'>This is a heading </h1></p><p class=’B’ style='height: 100%;width: 100%;background: #000;z-index: 999;'></p>

效果:

css - 子元素的z-index如何高于父元素的兄弟元素的z-index值?

回答3:

首先A,B,H都是絕對定位,然后z-index,B>A了,自然而然,B就擋住了A,H在A里面,又是絕對定位于A,自然也就擋住H了,解決方法就是設置z-index,A>B就行了。這樣布局,H的z-index,沒有實在的意義(只要遮住了A,也就遮住了H)!除非H不在A里面!

回答4:

可以想象成每一個元素的z-index都聲明了一個平面世界,平面世界的高度就是z-index的值。 而子元素的z-index都是在這個世界相比較。

回答5:

如果外面的z-index前者小于后者,沒有辦法讓前者的子節點超過后者,只能改變層級,不過這樣子的話,前者就可能把后者全都檔住了,所以樓主還是把H從A中拿出來對應的層級設置好就能達到效果了

回答6:

不能父級限制了子元素的 位置

標簽: CSS
相關文章:
主站蜘蛛池模板: 老司机黄色影院 | 欧美另类精品 | 亚洲国产成人精品久久 | 成人97 | 中文字幕在线免费观看视频 | 欧美成人精品久久精品 | 国产精品久久久久久久hd | 九九久久视频 | 国产精品毛片在线大全 | 性欧美巨大的视频 | 欧美精品hdvdeosex4k| 久草在线视频免费 | 国产精品久久久久一区二区 | 免费一区区三区四区 | 精品国产一级毛片 | 亚洲精品线在线观看 | 亚洲成年人免费网站 | 全免费a级毛片免费看不卡 全免费毛片在线播放 | 香蕉视频黄在线观看 | 亚洲成成品网站有线 | 视频三区精品中文字幕 | 99久热在线精品视频播放6 | 2018av男人天堂 | 一本色道久久综合亚洲精品 | 欧美2区 | 娇喘嗯嗯~轻点啊视频福利 | 青青青青爽视频在线播放 | 亚州中文| 国产一区二区免费在线观看 | 国产亚洲精品一区二区在线播放 | 国产精品性视频免费播放 | 国产欧美日韩综合一区二区三区 | 国产免费一区不卡在线 | 综合久久一区二区三区 | 免费看黄色三级毛片 | 久草视频免费在线播放 | 熟女毛片 | 国产三级日本三级在线播放 | 中国欧美一级毛片免费 | 国产高清片 | 毛片免费网址 |