首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

CSS 瀑布流父容器高度塌陷:absolute 定位元素不佔據流的解決方案

     編輯:程式設計綜合問答

現象

`#mview` 內 `.box` 經 JS 計算 `position:absolute; top/left` 定位後,父容器高度僅剩第一行高度,內容溢出不撐開。

原因

`absolute` 元素**脫離文檔流**,不佔據父容器空間,父容器高度按正常流子元素計算(此處無正常流子元素)。

解決:JS 計算完後動態設置父容器高度

function waterfall() {
    // ... 現有計算邏輯 ...
    // 最後:
    let maxBottom = 0;
    $('#mview .box').each(function() {
        const bottom = $(this).position().top + $(this).outerHeight();
        if (bottom > maxBottom) maxBottom = bottom;
    });
    $('#mview').height(maxBottom); // 撐開父容器
}

替代:CSS Grid/Flex 瀑布流 (現代瀏覽器)

若無需極高兼容性,CSS `columns` + `column-gap` 或 `grid-auto-flow: dense` 可實現無 JS 瀑布流,父容器自動撐高。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved