当前位置: 首页 > Web前端 > HTML

5分钟搞懂BFC原理

时间:2023-04-02 11:55:34 HTML

一、BFC概念BFC即BlockFormattingContexts(块级格式化上下文),它是页面中的一个渲染区域,有一套渲染规则,决定了它的child如何元素将被定位。以及与其他元素的关系和交互。具有BFC特性的元素可以看作是隔离的独立容器。容器内部的元素在布局时不会影响外部元素,BFC具有一些普通容器不具备的特性。通俗地说,BFC可以理解为一个封闭的大盒子,盒子里面的元素再大也不会影响到外面。2.触发BFC特性只要元素满足以下任一条件即可触发:body根元素浮动元素:非none的float值绝对定位元素:position(absolute,fixed)displayisinline-block,table-cells,flexoverflowexceptValuesexceptvisible(hidden,auto,scroll)3.BFC特点及应用1.同一个BFC的下边距会重叠。代码如下BFC

运行结果如下:从效果来看,因为这两个div元素在同一个BFC容器下(这里指的是body元素),所以第一个div的bottommargin和第二个div的topmargin重叠,所以两个box的距离只有50px而不是100px。使用BFC原理修改后的代码如下:BFC
此时两个框之间的边距为100px,运行结果如下图所示:2.BFC可以包含浮动元素(clearfloating).我们都知道浮动元素会脱离文档流。参见示例:BFC运行结果如下:由于浮动元素脱离上下文文件流,所以容器的高度只有2px。如果BFC被触发,容器会包裹浮动元素BFCClearfloatingeffects运行结果如图3.BFC可以防止元素被浮动元素覆盖BFC我是一个不浮动的元素不触发BFC.width:200px;高度:300px;background:#f0f;运行结果如下:此时第一个浮动元素已经覆盖了第二个元素,但是文字内容不会被覆盖。如果第二个元素触发BFC,即添加第二个元素overflow:hidden;会持续更新,欢迎指教!