浅析BFC及其作用

一、什么是BFC
BFC(block formatting context)简单来说,BFC 就是一种属性,这种属性会影响着元素的定位以及与其兄弟元素之间的相互作用。
中文常译为块级格式化上下文。是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。 在进行盒子元素布局的时候,BFC提供了一个环境,在这个环境中按照一定规则进行布局不会影响到其它环境中的布局。比如浮动元素会形成BFC,浮动元素内部子元素的主要受该浮动元素影响,两个浮动元素之间是互不影响的。 也就是说,如果一个元素符合了成为BFC的条件,该元素内部元素的布局和定位就和外部元素互不影响(除非内部的盒子建立了新的 BFC),是一个隔离了的独立容器。(在 CSS3 中,BFC 叫做 Flow Root)

二、 形成 BFC 的条件
1、浮动元素,float 除 none 以外的值;
2、绝对定位元素,position(absolute,fixed);
3、display 为以下其中之一的值 inline-blocks,table-cells,table-captions;
4、overflow 除了 visible 以外的值(hidden,auto,scroll)

三、BFC常见作用
1、包含浮动元素
问题案例:高度塌陷问题:在通常情况下父元素的高度会被子元素撑开,而在这里因为其子元素为浮动元素所以父元素发生了高度坍塌,上下边界重合。这时就可以用bfc来清除浮动了。
这里写图片描述

2、不被浮动元素覆盖
问题案例: div浮动兄弟遮盖问题:由于左侧块级元素发生了浮动,所以和右侧未发生浮动的块级元素不在同一层内,所以会发生div遮挡问题。可以给蓝色块加 overflow: hidden,触发bfc来解决遮挡问题。
这里写图片描述

3、 BFC 会阻止外边距折叠
问题案例:margin塌陷问题:在标准文档流中,块级标签之间竖直方向的margin会以大的为准,这就是margin的塌陷现象。可以用overflow:hidden产生bfc来解决。
这里写图片描述

  • 42
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浮动(float)是CSS中一种常用的布局技术,它允许元素在文档流中浮动到指定的位置。但浮动元素可能会带来一些副作用,包括以下几个方面: 1. 父元素高度塌陷:当父元素中的子元素都设置了浮动后,父元素的高度会塌陷为0,导致父元素的背景无法显示或者无法撑开容器。这个问题可以通过清除浮动来解决。 2. 元素重叠:浮动元素在文档流中脱离了正常的布局流,可能会导致其他元素与之重叠。这个问题可以通过使用clear属性来解决。 3. 文字环绕:当浮动元素位于文本周围时,文本会环绕在浮动元素的周围,可能会导致布局混乱。这个问题可以通过使用clear属性或者调整浮动元素的位置来解决。 为了去除浮动的副作用,可以采取以下几种方法: 1. 使用clearfix:给父元素添加一个clearfix类,该类包含一个清除浮动的样式规则,例如: ``` .clearfix::after { content: ""; display: table; clear: both; } ``` 然后在包含浮动元素的父元素上添加clearfix类。 2. 使用clear属性:在浮动元素的下方添加一个空的元素,并设置其clear属性为both,例如: ``` <div style="clear: both;"></div> ``` 3. 使用overflow属性:给包含浮动元素的父元素设置overflow:hidden或overflow:auto属性,可以触发BFC(块级格式化上下文),从而清除浮动的影响。 以上是一些常用的方法,根据具体的情况选择合适的方式来解决浮动带来的副作用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值