正常情況下,為浮動的父元素設定overflow:hidden;就可以清楚浮動,但是我發現被浮動元素的父元素是body時,給body設定overflow:hidden,是無法清除浮動的,有人說是body不屬於普通流,所以無效,有誰能解釋下嗎?
感謝:CRIMX借用王大陸的一句話:
你這種人不是大神,就是走在成為大神的路上。
這是因為並沒有產生新的 BFC
產生新的BFC 的一個條件:
當「溢位」未計算為「可見」時,正常流程中的區塊級非替換元素(除非「溢位」屬性的值已傳播到視窗).
為什麼對<body> 设置 overflow會擴散到視口:
<body>
overflow
UA 必須將根元素上設定的「overflow」屬性套用到視窗。當根元素是HTML“HTML”元素或XHTML“html”元素,且該元素具有HTML“BODY”元素或XHTML“body”元素作為子元素時,用戶代理必須改為應用“溢出” ' 屬性從第一個這樣的子元素到視口,如果根元素上的值為「visible」。用於視窗的「visible」值必須解釋為「auto」。傳播值的元素必須具有「visible」的「overflow」使用值。
這是因為並沒有產生新的 BFC
產生新的BFC 的一個條件:
為什麼對
<body>
设置overflow
會擴散到視口: