自嵌套是個很奇怪的概念,雖然 HTML/CSS 不能算是一種編程語言,但結構上的自嵌套可能比函數遞歸的自嵌套還難搞定。函數遞歸時我們總要給遞歸一個結束條件,而模塊自嵌套完全是邏輯上的,這才是真正可怕的地方。我已經被自嵌套問題坑過無數次坑怕了。
也許會有人認為自嵌套的情況離我們平時的用法太遠了,完全不需要花時間去糾結這種問題。其實我們一直在用自嵌套,只是平時的業(yè)務對它沒有太多需求,所以可能自己都不知道。從當年的表格布局開始就存在了表格嵌套的問題,所以這是很有歷史的東西了。只是在每個不同的時期人們遇到的具體問題不同而已。
如果只以 TagName 為單位,那到處都是自嵌套。比如兩個嵌套的 DIV 標簽就可以理解為自己嵌套自己,因為寫樣式的時候實際上無論 DIV 的嵌套方式如何,它都是 DIV。比如下面的代碼就是一個嵌套的 DIV,但它們具有不同的樣式。
運行
在一些奇怪的論壇上經常會看到一頁頁嵌套的回帖方式(雖然我很討厭這個),這東西就是典型的模塊自嵌套。下面這個例子就是類似的東西
運行
如果最外層模塊和內部的所有模塊都使用同樣的樣式,那確實沒什么問題,正常使用就行了。但實際上業(yè)務總是會有各種奇怪的需求,比如讓某一層嵌套顯示出特殊的樣子,雖然加一個 class 就能解決問題,但要是使用后代選擇器的話就可能有更深遠的影響。這個問題的一個典型是 UL/OL/LI 結構的自嵌套。為某個層次的列表設置樣式后需要考慮樣式對后代元素的影響。不僅是后代選擇器,甚至 CSS 本身的繼承機制也會影響到后代元素。
除了 UL/OL/LI 結構外,還有 DL/DT/DD 結構也經常受到自嵌套的困擾。我自己就經常使用全局的 DL/DT/DD 結構布局,比如
運行
-
···
-
這個代碼本身沒有問題,但如果在 DD 中又嵌入了 DL/DT/DD 結構的話,DD 的樣式可能受到外層 DD 的影響。
對于以上這些問題我的建議是,在可能存在自己嵌套的結構中,避免直接使用后代選擇器,可以使用子選擇器代替。
本文來源于成都網站建設公司與成都網站設計制作公司-創(chuàng)新互聯(lián)成都公司!
標題名稱:關于模塊自嵌套
URL網址:http://jinyejixie.com/news46/324446.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、服務器托管、響應式網站、網站建設、營銷型網站建設、云服務器
廣告
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創(chuàng)新互聯(lián)