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