什么是文檔流,以及如何脫離文檔流,以及如何“解決”脫離文檔流


所謂的文檔流,就好比如一塊塊的正方形組成的一個整體,而這些正方形就代表着每個div。當某個div脫離了這個整體,也就代表他脫離了文檔流。然后下一個div就會來填補脫離的div的位置。下面是流程圖。
  有四個小朋友在買小賣部排隊買糖吃~

 

 第一個買完了糖的小朋友脫離了排隊的隊伍開心的吃糖去。

 

 后面的小朋友看前面的小朋友走了,連忙補上防止別人插隊。

 

 

 

 實際上,在html頁面中,我們看到的會是這樣。

 

目前常見的會影響元素脫離文檔流的css屬性有:
  ①float浮動。
  ②position的absolute和fixed定位。 

div2被div1給覆蓋了!因為脫離文檔流的div1不占據頁面的空間了,所以才會留有空間給后面的div補上,當然這也導致了div2給div1覆蓋了!

  如何解決div相互覆蓋層疊問題,如下:

  當我們看到div相互層疊覆蓋的時候,首先我們想到的是否有div脫離了文檔流?其次我們在分析他們是通過什么方法脫離文檔流的?

  目前,常見的脫離文檔流的方法有position定位和float浮動兩種!

  1、如果這個div是通過float導致的脫離文檔流的話,可以通過上面的div和下面的div之間插入清除浮動

 

   2、如果是position絕對定位(absolute)導致某個div脫離了文檔流,從而使下面的div(即div2)和上面的div(div1)相互層疊了。那么,該如何解決呢?
  首先,切忌對下一個div使用position定位來解決問題,不然這就是一個坑

   ①“替死鬼”法
  制作多一個div(即div3)來代替div2,使得這個新制作出來的div3來填補這個文檔流的缺漏(為脫離文檔流的div1填補)。
  不單單制作出來div3出來后就算了,還要設置他的高度height為div1的高度。這樣子就好像恢復如初,回到最初的未改變文檔流一樣!(嘻嘻~,障眼法~)
  暫時就想到一個辦法,后續想到會繼續補充!

  參考:https://blog.csdn.net/qq_40421277/article/details/79687268

  另外脫離文檔流的三種方法,參考:https://www.cnblogs.com/ning123/p/11011845.html




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM