- 如果不考慮css3狐血,只有定位元素的z-index才有作用撮弧。
- 如果定位元素z-index沒(méi)有發(fā)生嵌套:1潘懊、后來(lái)居上的準(zhǔn)則(dom流先后順序)姚糊;2、哪個(gè)大授舟,哪個(gè)上救恨。
- 如果定位元素發(fā)生了嵌套,則為祖先優(yōu)先原則岂却。前提:z-index是數(shù)值忿薇,非auto
css2.1:(z-index:auto)當(dāng)前層疊上下文的生成盒子層疊上下文是0.盒子(除非是根元素)不會(huì)創(chuàng)建新的層疊上下文裙椭。
層疊上下文躏哩、層疊水平和層疊順序的概念
- 層疊上下文(stacking context):是HTML元素中的一個(gè)三維概念,表示元素在z軸上有了“可以高人一等”揉燃。
1扫尺、頁(yè)面根元素天生具有層疊上下文,稱之為“根元素層疊上下文”
2炊汤、z-index值為數(shù)值的定位元素也具有層疊上下文正驻。
3、其他屬性抢腐。姑曙。。迈倍。
層疊上下文的特性:
1伤靠、可以嵌套,組合成一個(gè)分層次的層疊上下文啼染。
2宴合、每個(gè)層疊上下文和兄弟元素獨(dú)立:當(dāng)進(jìn)行層疊變化或渲染的時(shí)候,只需要考慮后代元素迹鹅。
3卦洽、每個(gè)層疊上下文是自成體系的:當(dāng)元素的內(nèi)容被層疊后,整個(gè)元素被認(rèn)為是在父層的層疊順序中斜棚。層疊水平(stacking level):層疊上下文中的每一個(gè)元素都有一個(gè)層疊水平阀蒂,決定了同一個(gè)層疊上下文中元素在z軸上的顯示順序。遵循“后來(lái)居上”和“誰(shuí)大誰(shuí)上”的層疊準(zhǔn)則弟蚀。
層疊水平和z-index不是一個(gè)東西蚤霞,普通元素也有層疊水平。層疊順序(stacking order):元素發(fā)生層疊時(shí)候有著特定的垂直顯示順序粗梭。意義是規(guī)范元素重疊時(shí)候的呈現(xiàn)規(guī)則
三個(gè)要點(diǎn):
1争便、定位元素默認(rèn)z-index:auto可以看成是z-index:0;
2、z-index不為auto的定位元素會(huì)創(chuàng)建層疊上下文断医;
3滞乙、z-index層疊順序的比較止步于父級(jí)層疊上下文奏纪。非定位元素的層疊上下文
1、不支持z-index的層疊上下文元素的層疊順序均是z-index:auto級(jí)別
2斩启、依賴z-index的層疊上下文元素的層疊順序取決于z-index值經(jīng)驗(yàn):
1序调、對(duì)于非浮層元素,避免設(shè)置z-index值兔簇,z-index值沒(méi)有任何道理需要超過(guò)2---不犯二準(zhǔn)則发绢。
2、采用組件層級(jí)計(jì)算器方式設(shè)置層級(jí):通過(guò)js獲得body下子元素的最大z-index值+1