深入淺析css中的層疊上下文
這篇文章帶大家聊聊css中的層疊上下文,透過範例來比較一下層疊等級,希望對大家有幫助!
前段時間,公司開始推動低程式碼平台業務,我有幸的參與其中。在這段期間牽扯到了css的層疊上下文,並給我帶來了一定的困擾,為了更好的實現業務邏輯,我覺得好好的深入研究一下css的層疊上下文。想必大家都知道網頁是二維空間的,但是內容卻是三維的,除了比較直覺的x、y之外,還存在著一個不是很直覺的z軸。
層疊上下文元素
我們日常開發過程中,比較常使用的涉及層疊上下文的屬性主要有幾種:
position: absolute | fixed | relative | sticky
z-index
#float: left | right
transform
層疊等級比較
在不牽扯到祖孫嵌套的前提下,簡單的層級對比:
z- index: -1 0
在牽扯到祖先元素已經產生了層疊上下文的時候,那是後代元素的層疊等級會受到祖先元素的影響。
Note: 層疊上下文的層級是 HTML 元素層級的子級,因為只有某些元素才會建立層疊上下文。可以這樣說,沒有創建自己的層疊上下文的元素會被父層疊上下文同化。
實戰問題
在視覺化實現的過程中,碰到了一個問題:在嵌套層級的拖曳的過程,由於嵌套的父元素上已經存在了層級問題,導致祖孫元素受到祖先元素的影響,拖曳的時候會出現被「正常文檔流」的元素所覆蓋的情況。經過一段時間的研究,產生這個問題的原因就是受不同層疊上下文的影響所導致的。
實戰
1. 同層級的層疊上下文比較
由於程式碼量太多,這裡就不浪費篇幅進行展示了,直接上我運行的結果。透過下面的圖片,我們可以對上文提到的同層級的層級比較做出印證。
2. 不同position的層疊上下文比較
對position來說,在不使用z -index的情況下,兄元素的層疊上下文大於弟元素的層疊上下文。用人話說,就是後面的元素的層疊上下文高於前面的元素。
.fixed { position: fixed; top: 0; left: 0; background: red; } .relative { position: relative; top: 20px; left: 20px; background: green; } .absolute { position: absolute; top: 60px; left: 60px; background: yellow; } .sticky { position: sticky; top: 60px; left: 90px; background: pink; }
3. 不同層疊上下文中的層疊等級比較
首先我們先復現一下上面提到實戰問題,不同層疊上下文裡面的層疊等級實現。
紅色塊和綠色塊是兩個同級元素,其中紅色的層疊等級高於綠色的層疊等級,導致紅色塊中的兩個元素即使層疊等級低於橘色的塊元素,但是實際效果是,橘色的層疊等級低於另外的塊元素。
.purple { top: 20px; left: 20px; background: purple; z-index: 10; } .pink { top: 60px; left: 60px; background: pink; z-index: 20; } .orange { top: 10px; left: 10px; background: orange; z-index: 999; }
這裡,提一下我對於上面的問題的解決方法,就是動態修改祖先元素的層疊等級。不過,我個人覺得這個方式有待研究,嵌套層級較多的時候,比較笨重。如果有小夥伴有更好的方式的話,歡迎在下面留言。
(學習影片分享:css影片教學)
以上是深入淺析css中的層疊上下文的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-
