正常情况下,给浮动的父元素设置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
会扩散到视口: