BFC 淩亂°似流年 2023-06-27 12:42 79阅读 0赞 # 一.BFC简介 # Formatting context(格式化上下文) 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。 普通流其实就是指BFC中的FC 普通流:[常见文档流][Link 1] ## 那么 BFC 是什么呢? ## • BFC 即 Block Formatting Contexts (块级格式化上下文),它是一个独立的渲染区域,只有Block-level box(块级盒)参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干 • 具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。 ## BFC布局规则(特性): ## • 1.内部的Box会在垂直方向,一个接一个地放置。 • 2.Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生叠加 • 3.BFC的区域不会与float box叠加,也就是说,BFC 可以阻止元素被浮动元素覆盖。 • 4.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。 • 5.计算BFC的高度时,浮动元素也参与计算。 • 6.每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。 ## 在以下的情况可以触发BFC: ## • 根元素 • 浮动元素:float 除了none以外的值 • 绝对定位元素:position (absolute、fixed) • overflow 除了visible 以外的值(hidden,auto,scroll ) • display (table-cell,table-caption,inline-block, flex, inline-flex) ## BFC有哪些作用: ## • 1.自适应两栏布局——可以阻止元素被浮动元素覆盖 • 2.可以包含浮动元素——清除内部浮动 • 3.分属于不同的BFC时可以阻止margin重叠 # 二.BFC应用 # **BFC布局规则1:内部的Box会在垂直方向,一个接一个地放置。** ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70] **提示**:Box之间的距离虽然也可以使用padding来控制,但是此时实际上还是属于box内部里面,而且使用padding来控制的话就不能再使用border属性了。 • **布局规则1**:就是我们**平常div一行一行块级放置的样式**,大家想一下就知道了,这里就不展开了。 • **布局规则2**:Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。 **BFC的作用**:阻止margin重叠: **操作方法**:给其中一个div外面包一个div,然后通过触发外面这个div的BFC使其不受外部干扰,就可以阻止这两个div的margin重叠 <style> .parent { background: #FEC68B; /*给其中一个div包一个父级div, 通过改变此div的属性使两个盒子分属于两个不同的BFC,以此来阻止margin重叠*/ overflow: hidden; /*此时已经触发了BFC属性*/ } .child { margin-bottom: 50px; margin-top: 50px; height: 50px; background-color: pink; } </style> <body> <div class="parent"> <div class="child">我是浮动元素</div> </div> <div class="child">我是浮动元素</div> </body> 改造前: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70 1] 改造后: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70 2] • **布局规则3**:每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。 **BFC的作用**:清除内部浮动 **操作方法**:给父div加上 overflow: hidden;这里也可以用 float: left; 如果没有为父元素parent创建BFC清除浮动的话,父div不会将下面两个div包裹,但还是在父div的范围之内,**左浮是子div的左边接触父div的borderbox的左边,右浮是子div接触父div的borderbox右边**,除非设置margin来撑开距离,否则一直是这个规则。 <style> .parent { background: #FEC68B; /*给其中一个div包一个父级div, 通过改变此div的属性使两个盒子分属于两个不同的BFC,以此来阻止margin重叠*/ overflow: hidden; /*此时已经触发了BFC属性*/ /*这里也可以用 float: left;*/ text-align: center; } .child { width:100px; margin-bottom: 50px; margin-top: 50px; height: 50px; background-color: pink; float: left; } </style> <div class="parent"> <div class="child">111</div> <!--//给这两个子div加浮动,浮动的结果,如果没有清除浮动的话, //父div不会将下面两个div包裹,但还是在父div的范围之内。--> <div class="child">111</div> </div> 改造前: ![在这里插入图片描述][20200107144043152.png] 改造后 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70 3] • **布局规则4**:BFC的区域不会与float box重叠 **BFC的作用**:BFC作用:自适应两栏布局。 **操作方法**:给main加一个父元素text,并且在父元素加上 overflow: hidden; <style> .aside { width: 100px; height: 150px; float: left; background: #f66; } .main { width: 200px; height: 200px; overflow: hidden; /*//触发main盒子的BFC*/ background: #fcc; } </style> <body> <div class="aside"></div> <div class="main"></div> </body> 改造前: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70_pic_center] 改造后 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70_pic_center 1] [Link 1]: https://blog.csdn.net/weixin_46100406/article/details/103892928 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70]: https://img-blog.csdnimg.cn/20200106201215359.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg==,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70 1]: https://img-blog.csdnimg.cn/20200107144632691.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg==,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70 2]: https://img-blog.csdnimg.cn/20200107144521417.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg==,size_16,color_FFFFFF,t_70 [20200107144043152.png]: https://img-blog.csdnimg.cn/20200107144043152.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70 3]: https://img-blog.csdnimg.cn/20200107144123680.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg==,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70_pic_center]: https://img-blog.csdnimg.cn/20200814105055989.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg==,size_16,color_FFFFFF,t_70#pic_center [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg_size_16_color_FFFFFF_t_70_pic_center 1]: https://img-blog.csdnimg.cn/20200814104935388.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMDQwNg==,size_16,color_FFFFFF,t_70#pic_center
相关 BFC 本文参考:[关于CSS-BFC深入理解][CSS-BFC] 1.BFC概念 **一句话概括:** BFC就是CSS布局的一个概念,是一块区域,一个环境。 *... 我不是女神ヾ/ 2024年04月17日 06:07/ 0 赞/ 147 阅读
相关 BFC 说在前面: 1. 文档流 > 文档流包括浮动流、定位流以及普通的标准流。 > 普通标准流就是FC 2. `FC` > 格式化上下文,它是页面中一 女爷i/ 2023年07月11日 06:12/ 0 赞/ 144 阅读
相关 BFC 一.BFC简介 Formatting context(格式化上下文) 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其 淩亂°似流年/ 2023年06月27日 12:42/ 0 赞/ 80 阅读
相关 BFC 什么是BFC BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了 我不是女神ヾ/ 2023年01月08日 11:27/ 0 赞/ 245 阅读
相关 css BFC > BFC(Block Formatting Context):块级格式上下文 > BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之也如此 忘是亡心i/ 2022年12月22日 09:54/ 0 赞/ 331 阅读
相关 BFC原理 原文:http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html 一、BFC是什么? 悠悠/ 2022年09月25日 15:26/ 0 赞/ 302 阅读
相关 BFC介绍 BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等)。虽然我知道如何利用 àì夳堔傛蜴生んèń/ 2022年09月25日 07:16/ 0 赞/ 282 阅读
相关 BFC 在解释 BFC 是什么之前,需要先介绍 Box、Formatting Context的概念。 Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单 你的名字/ 2022年05月17日 01:46/ 0 赞/ 310 阅读
相关 理解BFC 理解BFC 更好阅读体验移步:[zhangzippo.github.io/posts/2019/…][zhangzippo.github.io_posts_2019] 女爷i/ 2022年01月20日 03:03/ 0 赞/ 410 阅读
相关 BFC BFC的定义\\\ 先看W3C文档 > In a block formatting context, boxes are laid out one after the 淩亂°似流年/ 2021年12月23日 16:41/ 0 赞/ 390 阅读
还没有评论,来说两句吧...