CSS高度坍塌?如何解決?

一、什么是高度坍塌?

高度坍塌(Collapsing Margins)是指當父元素沒有設置邊框(border)、內邊距(padding)、內容(content)或清除浮動時,其子元素的 margin 會"溢出"到父元素外面,導致父元素的高度計算不包含子元素的 margin,看起來像是父元素"坍塌"了。

二、高度坍塌的常見場景

1. 父子元素?margin 傳遞

<div class="parent"><div class="child"></div>
</div>.parent {background: #f00;}.child {margin-top: 50px;height: 100px;width:200px;background: #0f0;}

效果:



? ?此時父元素的背景只覆蓋了子元素的 height 部分,margin-top 部分沒有覆蓋

2. 相鄰元素的 margin 合并

<div class="box1"></div><div class="box2"></div>.box1 {margin-bottom: 30px;}.box2 {margin-top: 20px;}

??實際間距是 30px(取較大值),而不是 50px

三、解決高度坍塌的 7 種方法

1. 使用邊框(border)或內邊距(padding)

.parent {border: 1px solid transparent; /* 透明邊框 *//* 或 */padding: 1px; /* 最小內邊距 */
}

2. 觸發 BFC(塊級格式化上下文)

.parent {overflow: hidden; /* 最常用 *//* 或 */display: flow-root; /* 專門用于創建BFC *//* 或 */float: left/right;/* 或 */position: absolute/fixed;/* 或 */display: inline-block;
}

3. 使用偽元素清除浮動(clearfix)

.parent::after {content: "";display: table;clear: both;
}

4. 使用 flex 或 grid 布局

.parent {display: flex; /* 或 grid */
}

5. 給父元素設置最小高度

.parent {min-height: 1px;
}

6. 使用隔離屬性(isolation)

.parent {isolation: isolate;
}

tip:實際應用建議

1. 現代布局:優先使用 flex 或 grid 布局,它們天然避免了許多傳統布局問題
2. 通用解決方:`display: flow-root` 是最語義化的 BFC 創建方式
3. 兼容性考慮:如果需要支持舊瀏覽器,`overflow: hidden` 或 clearfix 方法更可靠

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901583.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901583.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901583.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Web前端開發——格式化文本與段落(上)

一、學習目標 網頁內容的排版包括文本格式化、段落格式化和整個頁面的格式化&#xff0c;這是設計個網頁的基礎。文本格式化標記分為字體標記、文字修飾標記。字體標記和文字修飾標記包括對于字體樣式的一些特殊修改。段落格式化標記分為段落標記、換行記、水平分隔線標記等。…

關于PHP開源CMS系統ModStart的詳細介紹及使用指南

關于PHP開源CMS系統ModStart的詳細介紹及使用指南&#xff1a; &#x1f50d; ModStart是什么&#xff1f; 基于Laravel框架開發的模塊化CMS系統采用Apache 2.0 開源協議&#xff0c;完全免費可商用特別適合需要快速搭建企業級網站/管理系統的開發者 &#x1f680; 核心優勢…

TCP標志位抓包

說明 TCP協議的Header信息&#xff0c;URG、ACK、PSH、RST、SYN、FIN這6個字段在14字節的位置&#xff0c;對應的是tcp[13]&#xff0c;因為字節數是從[0]開始數的&#xff0c;14字節對應的就是tcp[13]&#xff0c;因此在抓這幾個標志位的數據包時就要明確范圍在tcp[13] 示例1…

RK3588S開發板將SPI1接口改成GPIO

參考官方教程&#xff1a;ROC-RK3588S-PC 一.基本知識&#xff1a; 1.GPIO引腳計算&#xff1a; ROC-RK3588S-PC 有 5 組 GPIO bank&#xff1a;GPIO0~GPIO4&#xff0c;每組又以 A0~A7, B0~B7, C0~C7, D0~D7 作為編號區分&#xff0c;常用以下公式計算引腳&#xff1a;GPIO…

Java 設計模式:適配器模式詳解

Java 設計模式&#xff1a;適配器模式詳解 適配器模式&#xff08;Adapter Pattern&#xff09;是一種結構型設計模式&#xff0c;它通過將一個類的接口轉換為客戶端期望的另一個接口&#xff0c;使原本不兼容的類能夠協同工作。適配器模式就像現實生活中的電源適配器&#xf…

python manimgl數學動畫演示_微積分_線性代數原理_ubuntu安裝問題[已解決]

1.背景 最近調研python opencv, cuda加速矩陣/向量運算, 對于矩陣的線性變換, 秩, 轉秩, 行列式變化等概概念模糊不清. 大概課本依舊是天書, 于是上B站搜索線性代數, 看到 3Blue1Brown 線性變換本質 視頻, 點擊觀看. 驚為天人 --> 豁然開朗 --> 突然頓悟 --> 開心不已…

Git 學習筆記

這篇筆記記錄了我在git學習中常常用到的指令&#xff0c;方便在未來進行查閱。此篇文章也會根據筆者的學習進度持續更新。 網站分享 Git 常用命令大全 Learn Git Branching 基礎 $ git init //在當前位置配置一個git版本庫 $ git add <file> //將文件添加至…

Dynamics365 ExportPdfTemplateExportWordTemplate兩個Action調用的body構造

這兩天在用ExportPdfTemplate做pdf導出功能時&#xff0c;遇到了如下問題InnerException : Microsoft.OData.ODataException: An unexpected StartArray node was found when reading from the JSON reader. A PrimitiveValue node was expected. 我的場景是使用power automate…

經典算法 判斷一個圖是不是樹

判斷一個圖是不是樹 問題描述 給一個以0 0結尾的整數對列表&#xff0c;除0 0外的每兩個整數表示一條連接了這兩個節點的邊。假設節點編號不超過100000大于0。你只要判斷由這些節點和邊構成的圖是不是樹。是輸出YES&#xff0c;不是輸出NO。 輸入樣例1 6 8 5 3 5 2 6 4 5…

【嵌入式八股2】C++:STL容器與算法

1. STL常見容器及其內部實現的數據結構 序號 名稱 描述 存儲結構 常用方法和操作 1vector動態分配的數組順序數組&#xff08;array&#xff09;v.push_back(), v.pop_back(), v.insert(), v.erase(), v.capacity(), v.size(), v.at(idx), v.front(), v.back()2list雙向鏈表離…

vmcore分析鎖問題實例(x86-64)

問題描述&#xff1a;系統出現panic&#xff0c;dmesg有如下打印&#xff1a; [122061.197311] task:irq/181-ice-enp state:D stack:0 pid:3134 ppid:2 flags:0x00004000 [122061.197315] Call Trace: [122061.197317] <TASK> [122061.197318] __schedule0…

在Apple Silicon上部署Spark-TTS:四大核心庫的技術魔法解析!!!

在Apple Silicon上部署Spark-TTS&#xff1a;四大核心庫的技術魔法解析 &#x1f680; &#xff08;M2芯片實測&#xff5c;Python 3.12.9PyTorch 2.6.0全流程解析&#xff09; 一、核心庫功能全景圖 &#x1f50d; 在Spark-TTS的部署過程中&#xff0c;pip install numpy li…

leetcode03 -- 武漢旅游查詢系統

武漢旅游查詢系統 1 界面展示 1.首頁地圖界面 2.查找功能 在查找框內輸入查找的景點名稱 查找到的景點在地圖上進行定位,右側展示景點的詳細信息。 3.添加景點功能 在地圖上點擊某個位置,系統彈出一個輸入框供用戶填寫景點的名稱和描述。 在彈出的輸入框中輸入景點名…

玩機進階教程----MTK芯片設備刷機導致的死磚修復實例解析 連電腦毫無反應 非硬件問題

在高通芯片機型中,我們可以通過短接主板測試點來激活高通芯片特有的9008底層端口來刷寫救磚固件。但通常MTK芯片類的設備聯機電腦即可觸發深刷模式。但有些例外的情況會導致鏈接電腦毫無反應。遇到類似故障的友友可以參閱此博文嘗試解決。 通過博文了解 1??????-----實…

09-設計模式企業場景 面試題-mk

文章目錄 1.工廠(方法)模式1.1.簡單工廠模式(不是設計模式,是編程習慣)1.2.工廠方法模式(企業開發中最常見)1.3.抽象工廠模式2.策略模式2.1.登錄案例(工廠模式+策略模式)3.責任鏈設計模式4.單點登錄怎么是實現的?5.權限認證是如何實現的6.上傳數據的安全性你們怎么控…

BUUCTF-Web(1-20)

目錄 一.SQL注入 (1)[極客大挑戰 2019]EasySQL 萬能密碼 (7)[SUCTF 2019]EasySQL 堆疊注入 解一&#xff1a; 解二&#xff1a; (10)[強網杯 2019]隨便注 堆疊注入 解一&#xff1a; 解二&#xff1a; 解三&#xff1a; (8)[極客大挑戰 2019]LoveSQL 聯…

軟件包安裝管理Gitlab

官方提供了非常詳盡的系統及自動化腳本安裝教程 Gitlab官網下載地址&#xff1a;https://gitlab.cn/install/ 1、安裝配置 今天我們說一下包安裝管理&#xff0c;這樣方便我們自己更精確的制定符合我們自己需要的Gitlab倉庫 配置&#xff1a;ubuntu2004(focal) 4C8G 下載程…

hadoop執行sqoop任務找不到jar

sqoop:1.4.7 hadoop:3.4.1 數據:oracel-hdfs 2025-04-15 16:57:00,850 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7 2025-04-15 16:57:00,901 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 2025-04-15 …

空地機器人在復雜動態環境下,如何高效自主導航?

隨著空陸兩棲機器人(AGR)在應急救援和城市巡檢等領域的應用范圍不斷擴大&#xff0c;其在復雜動態環境中實現自主導航的挑戰也日益凸顯。對此香港大學王俊銘基于阿木實驗室P600無人機平臺自主搭建了一整套空地兩棲機器人&#xff0c;使用Prometheus開源框架完成算法的仿真驗證與…

MCP調用示例-GitHub倉庫操作

在上一篇文章MCP核心概念和應用 ———AI 大模型的標準化工具箱里&#xff0c;我們講述了MCP的安裝&#xff0c;現在讓我們試一試通過示例了解它的功能吧&#xff01; 首先確保你已經有了相應的APIKEY。 &#x1f4a1;大模型中轉API推薦 ?中轉使用教程 1、點擊界面上的 「Done…