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

加深对BFC

时间:2023-03-30 22:50:09 CSS

1的理解。相关定义1.1格式化上下文格式化上下文是W3CCSS2.1规定的一个概念。它是页面中的一个渲染区域,有一套渲染规则,决定了它的子元素如何定位,以及它们与其他元素的关系和交互。最常见的Formattingcontext是Blockformattingcontext(简称BFC)和Inlineformattingcontext(简称IFC)。css2.1中只有BFC和IFC,css3中增加了GFC和FFC。1.2BFC定义BFC(Blockformattingcontext)直译为“块格式化上下文”。它是一个独立的渲染区域,只有Block-levelbox参与,它规定了内部Block-levelBox如何布局,与该区域外部无关。1.3BFC布局规则:内部的Boxes会在垂直方向依次放置;Boxes的垂直距离由margin决定。属于同一个BFC的两个相邻框的边距将与每个元素的边距框的左侧重叠,接触包含块边框框的左侧(对于从左到右的格式,否则反之亦然)。即使使用浮动也是如此。BFC的区域不会和浮动框重叠。BFC是页面的一个隔离独立的容器,容器内部的子元素不会影响外部的元素。反之亦然。BFC计算高度时,浮动元素页面参与计算。2.功能2.1可以生成BFC的根元素html;float属性不是无;位置是绝对的或固定的;显示是inline-block,table-cell,table-caption,flex,inline-flex;溢出是不可见的;2.2场景一:对于两列或三列的浮动自适应布局,包含块边接触问题。<样式>.left-center-right.float.left{float:left;宽度:200px;高度:100px;背景色:rgba(0,0,0,0.7);.center{背景色:rgb(13,218,233);高度:200px;}.left-center-right.float.right{浮动:右;宽度:200px;高度:150px;背景色:rgb(189,109,109);}我是左区域块我是右区域块我是中间区域块中间自适应栏的边框会延伸左右浮动区域。这时候需要把中间的bar改成BFC。left-center-right.float.center{背景色:rgb(13,218,233);高度:200px;overflow:hidden;}2.3场景二:子元素有浮动,父元素折叠我是左边区域块我是右边区域块此时需要将父元素改为BFC.all-children-float{position:absolute;}2.3场景三:垂直边距重叠我是区域块1我是区域块2/section>Box在垂直方向的距离margin由属于同一个BFC的两个相邻的box决定框的边距将重叠。我们的做法是包裹一层标签,将其转化为BFC。.wrapper1{overflow:hidden;}我是区域块1

我是区域block2