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

CSS overflow:hidden 與 clear:both 的區別與適用場景

     編輯:程式設計綜合問答

核心結論

兩者作用完全不同,常被混淆是因為都能讓父元素「包住」浮動子元素,但機制不同:

屬性主要作用副作用/限制
overflow: hidden剪切超出盒子的內容,**觸發 BFC(塊級格式化上下文)**,從而包含內部浮動會隱藏溢出內容(如陰影、下拉菜單、absolute 定位元素超出部分)
clear: both強制當前元素下移,直到左右兩側無浮動元素,**不觸發 BFC**需額外添加空標簽或偽元素,不影響溢出顯示

現代最佳實踐:Clearfix 偽元素

.clearfix::after {
    content: "";
    display: table; /* 或 block */
    clear: both;
}
.clearfix { *zoom: 1; } /* IE6/7 觸發 hasLayout */

將 .clearfix 加在父容器上,語義清晰、無副作用、兼容性佳。

何時用 overflow:hidden?

  • 確定容器不會有內容溢出需顯示的場景(如固定高度的列表項、圖片裁剪容器)。
  • 需同時觸發 BFC 解決外邊距塌陷、阻止文字環繞等。

何時用 clear:both?

  • 舊專案已大量使用空 <div class="clear"></div>,維護成本低。
  • 需要在浮動元素中間強制換行(如兩欄浮動中間插入全寬橫幅)。

Flex/Grid 時代

現代佈局首選 display: flex 或 grid,天然包含浮動、無外邊距塌陷,徹底避開此類問題。

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