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

BFC的理解与创建

时间:2023-04-05 23:06:02 HTML5

.child{float:left;宽度:100px;高度:100px;背景:#FF0000;}.child+.child{margin-left:5px;}.test{背景:#00FFFF;宽度:600px;高度:100px;}一、定义1、BFC是Block(块)Formatting(格式化)Context(内容)的缩写,意为块级格式化上下文。是一个独立的块级渲染区域,有自己的渲染规则,与区域外部无关;2.界面渲染完成后,切换到debug模式,按ctrl+shift+c然后用鼠标移动界面,可以清楚的看到每个盒子结构都是独立的,父盒子的高度饱和了;2、为什么要学习和理解BFC1。第一种情况,浮动会脱离文档流,导致父元素的高度为零。箱子也受到影响。.child{float:left;宽度:100px;高度:100px;背景:#FF0000;}.child+.child{margin-left:5px;}.test{背景:#00FFFF;宽度:600px;高度:100px;}1

2
3
00009从结果来看,由于与文档流分离,父内容没有高度,影响还是很大很明显,在这一次,让父内容组成一个BFC就可以完美解决这个问题。2.margin.parentBox{width:300px;引起的塌陷问题高度:300px;背景色:红色;}.sub{宽度:100px;高度:100px;背景色:#00FFFF;顶部边距:20px;}只是给子元素添加了margin-top:20px,但是父元素下移了20px,这是的边距折叠,只需为父元素创建一个BFC。结语:既然有了BFC的概念,就一定要能够解决某些问题或者优化开发,否则就没有存在的意义。3、如何创建BFC1,显示:inline-block可以创建BFC,但是这会将元素更改为inlineblock级别;.parentBox{display:inline-block;}2.给父元素添加浮动,这样父元素就多了一个浮动,但是对父元素的父元素有额外的负面影响;.parentBox{float:left;}3.通过定位position,只要不是static或者relative,就可以组成一个BFC;.parentBox{位置:固定;//position:absolute;}4.弹性布局flex也可以创建BFC。parentBox{显示:flex;//display:inline-flex;}5.overflow:hidden可以创建BFC,这种方法也是比较主流的创建BFC的方法;.parentBox{overflow:hidden;}结论:BFC可以通过以上几种方式创建,overflow:hidden;是一种不会产生负面影响的方式,当然在实际开发中,可以结合当前布局选择合适的方式;