CSS層疊加的原則

2021-05-22 09:05:18 字數 1475 閱讀 7186

靜態定位:position:static(為position屬性的預設值)。     動態定位:position:relative或position:absolute或position:fixed。     祖元素:任意包含該元素的元素。     父元素:直接包含該元素的祖元素。     同輩元素:擁有共同的父元素的元素。

引用:

關於同輩元素是個非常關鍵的詞,這裡還需要詳細解釋 一下。

在這個例子中,div#a與 div#b並不是「同輩元素」,只有像div#b和div#c這樣擁有同樣父體div#f的的元素才能叫「同輩元素」。

引用結束

接 下來看看這五條法則

法則一:同輩元素定位方式相同,且無z-index設定 時,html靠後者居上。

法 則二:同輩元素同為動態定位時,且有z-index設定時,z-index值大者居上。

猛點這裡測試

法則三:同輩元素定位方式不同時,動態定位居上。

猛點這裡測試

法則四:非同輩元素,任意一者及其祖元素不具備動態布局時,html靠後者居上。

猛點這裡測試

法 則五:【重要】非同輩元素,任意一者或其祖元素擁有動態定位時,同時各自向上尋找動態定位的祖元素,並分別從中拿出具備最高端別的祖元 素(或其本身)進行比較。 

情況1:子元 素的z-index無論多大,父元素大者居上。

情況2:父元素居下,子元 素也可以居上。

情況1、情況2結合擴充套件比較。

其實前四點都是基礎,只有第五點比較難於理解,這裡詳細解釋一 下:

在這個例子中,我們來比較div#a_inner5和div#b_inner4的層疊關係。

到它們所共同擁有的祖元素 div#ab的下一級為止,div#a_inner5的祖元素包 括:div#a,div#a_inner1,div#a_inner2,div#a_inner3,div#a_inner4;div#b_inner4 的祖元素包括:div#b,div#b_inner1,div#b_inner2,div#b_inner3。

然後分析它們的祖元素中具有動態定 位的:div#a_inner5的祖元素中含有動態定位的元素有:div#a,div#a_inner3;div#b_inner4的祖元素中含有動態定 位的元素有:div#b_inner3。

然後再拿出最高端進行比較:div#a > #div#b_inner3。

父元素居 下,子元素也可以居上的情況,則是利用非同輩元素在祖元素具備動態布局時,其比較已經與position:static無關,而其祖元素卻可以通過 html的位置來進行比較。

引用結束

層疊加的5條原則

首先明確幾點在文中所需要用到的概念 靜態定位 position static 為position屬性的預設值 動態定位 position relative或position absolute或position fixed。祖元素 任意包含該元素的元素。父元素 直接包含該元素的祖元素。同輩元素 擁有共...

層疊加的五條疊加法則

法則一 同輩元素定位方式相同,且無z index設定時,html靠後者居上。法則二 同輩元素同為動態定位時,且有z index設定時,z index值大者居上。法則三 同輩元素定位方式不同時,動態定位居上。法則四 非同輩元素,任意一者及其祖元素不具備動態布局時,html靠後者居上。引用 其實前四點都...

層疊加的五條疊加法則 三

法則五 重要 非同輩元素,任意一者或其祖元素擁有動態定位時,同時各自向上尋找動態定位的祖元素,並分別從中拿出具備最高端別的祖元素 或其本身 進行比較。情況1 子元素的z index無論多大,父元素大者居上。情況2 父元素居下,子元素也可以居上。情況1 情況2結合擴充套件比較。情況1 子元素的z in...