20170601-BFC(块级格式化上下文)

咖啡续命
• 阅读 2152

BFC

BFC的全称是Block Format Content -- 块级格式化上下文。浮动、绝对定位的元素(absolute、fixed定位)、块容器(display属性为inline-block、table、table-cell、table、table-caption)、带有overflow属性(该属性值不为visible和inherit)的display为block的块级元素会在其内部建立新的块级格式化上下文。

BFC的作用:

元素们处于同一个块级格式化上下文时,会遵守相同的规则/格式(例如父子元素的margin会重叠),但是处于不同的块级格式化上下文时,元素的排列展示遵守的规则/格式是不同的(处于不同的BFC的父子元素的margin不会重叠--->父级元素处于一个BFC中,父级元素内部新建一个BFC)

生成BFC:

  • 设置浮动

  • 设置绝对定位

  • 设置display属性为inline-block、table、table-cell、table-caption

  • 设置overflow属性为 hidden、auto、scroll(不能设置为visible和inherit)

BFC的实际应用:

  • 父子元素的margin-top、margin-bottom会折叠,在父元素内部生成新的BFC,可以阻止父子元素的margin-top、margin-bottom重叠

  • BFC可以阻止文字围绕浮动元素的情况:下图中的例子中,需要在block02元素内部生成新的BFC,使得block02内部的文字不围绕浮动元素

20170601-BFC(块级格式化上下文)
20170601-BFC(块级格式化上下文)

  • 使用浮动元素可能会出现父容器高度为0的现象,在父容器内部生成新的BFC可以解决该问题

20170601-BFC(块级格式化上下文)
20170601-BFC(块级格式化上下文)

总结:

给块级元素设置某些属性,会在其内部产生新的BFC(块级格式化上下文),处于相同的BFC的元素会遵守相同的规则/格式。使用BFC可以解决以下问题:父子元素的上下margin合并问题、文字围绕浮动元素的问题和子元素浮动导致父元素高度为0的问题。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
good123 good123
3年前
浅谈BFC格局~
1.BFC含义💳BFC全称:BlockFormattingContexts块级元素格式化上下文W3CCSS2.1规范中的一个概念,它是一个独立容器,决定了块级元素如何对它的内容进行布局,以及与其他元素的关系和相互关系一个页面是由很多个Box组成的,元素的类型和display属性,决定了这个Box的类型,不同类型的Box,会参与不
菜园前端 菜园前端
2年前
你需要知道的CSS基础样式知识
原文链接:定位相关相对定位css.mycontentposition:relative;绝对定位css.mycontentposition:absolute;left:0;top:0;固定定位css.mycontentposition:fixed;left
Stella981 Stella981
3年前
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''
Wesley13 Wesley13
3年前
CSS块级元素与行内元素
CSS块级元素与行内元素行内元素与块状元素1、块级元素:可以设置width,height属性。行内元素:设置width和height无效,其宽度随其元素的内容(文字或者图片等)的宽度而变化。可以通过lineheight设置行高(行高和height是不同的东西)。2、块级元素:可以设置margin和padd
Wesley13 Wesley13
3年前
CSS定位和滚动条
0805自我总结一.绝对定位position:absolute;/绝对定位:1、定位属性值:absolute2、在页面中不再占位(浮起来了),就无法继承父级的宽度(必须自己自定义宽度)3、一旦定位后,定位的布局方位top、bottom、left、right都能参与布局
Wesley13 Wesley13
3年前
CSS定位规则之BFC
技术改变世界!学习改变人生!1. BFC(block formatting context,中文常译为块级格式化上下文)是W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。 在进行盒子元素布局的时候,BFC提供了一个环境,在这个环境中按照一定规则进行布局不会影响到其它环境中的布局。比如浮动元素
Wesley13 Wesley13
3年前
CSS内容布局
网页是由不同内容块构成的:标题、段落、链接、列表、图片、视频,等等。1.定位定位并不适合总体布局,因为它会把元素拉出页面的正常流。元素的初始定位方式为静态定位(static),即块级元素垂直堆叠。把元素设置为相对定位(relative),然后可以相对于其原始位置控制该元素的偏移量,同时又不影响其周围的元
Wesley13 Wesley13
3年前
CSS中清除浮动的作用以及如何清除浮动
1.什么是浮动,浮动的作用“浮动”从字面上来理解就是“悬浮移动、非固定”的意思。块级元素(div、table、span…)是以垂直方向排列,而在前端界面中往往要使用水平布局块级元素使界面更美观。这就要用到浮动了。被设置浮动的元素会脱离标准流(竖直排列),从而达到水平排列的效果。例如.未设置浮动时图1中的两张图片竖直排列在父级元素(橙色区域)
Stella981 Stella981
3年前
CSS 分类 (Classification)
★★CSS分类属性(Classification)★★⑴CSS分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的可见度。⑵下面是常用的属性以及描述:!(https://oscimg.oschina.net/oscnet/00cb565
咖啡续命
咖啡续命
Lv1
举头望明月,低头思故乡。
文章
4
粉丝
0
获赞
0