美文网首页
css BFC使用

css BFC使用

作者: 希染丶 | 来源:发表于2019-06-27 17:57 被阅读0次

什么是BFC、

块级格式化上下文

Box 是 CSS 布局的对象和基本单位,页面是由若干个Box组成的。

元素的类型 和 display 属性,决定了这个 Box 的类型。不同类型的 Box 会参与不同的 Formatting Context。

Formatting Context (格式化上下文)是页面的一块渲染区域,并且有一套渲染规则,
决定了其子元素如何定位,以及和其他元素的关系和相互作用

Formatting Context 包含 BFC(Block formatting context); IFC (Inline formatting context),

FFC (Flex formatting context) 和 GFC (Grid formatting context)

BFC范围:一个BFC包含创建该上下文元素的所有子元素,但不包括创建了新BFC的子元素的内部元素。

BFC效果:BFC的最显著的效果就是建立一个隔离的空间,断绝空间内外元素间相互的作用

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之也如此,包括浮动和外边距合并等等,有了这个特性我们布局的时候就不会出现意外情况了。

BFC布局规则

*BFC内,盒子依次垂直排列
*BFC内,两个盒子的垂直距离有margin属性决定,属于同一个BFC的两个相邻Box的margin会发成重叠
【符合合并原则的margin合并后是使用最大的margin】
*BFC内,每个盒子的左外边缘接触内部盒子的左边缘(对于从右到左的格式,右边缘接触)
即使存在浮动的情况下也是如此,除非创建新的BFC
*BFC的区域不会和float box重叠
*BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之也是如此
*计算BFC的高度时,浮动元素也参与计算

如何创建BFC

*根元素
*浮动元素(float属性不为none)
*绝对定位元素(position为absolute或fixed)
*overflow不为visible的块元素
*内联块(元素具有display:inline-block);
*表格单元格(元素具有 display: table-cell,HTML表格单元格默认属性)
*表格标题 (元素具有 display: table-caption, HTML表格标题默认属性)

BFC的应用

1.防止margin重叠(同一个BFC内的两个相邻的BOX的margin会发生重叠,触发生成两个BFC,即不会重叠)
2.清除内部浮动(创建一个新的BFC,因为根据BFC的规则,计算BFC的高度时,浮动元素也参与计算)
css浮动后的元素无论display是什么都默认为block,即使设置了inline也是block
方法一.使用overflow属性清除浮动
先找到浮动盒子的父元素,添加属性overflow:hidden,形成BFC,浏览器会给BFC创建隐式的外边距来阻止他和浮动元素的外边距叠加。
当给一个挨着浮动的BFC添加负外边距,不会起作用
方法二:给浮动元素添加一个额外的标签 .claer{clear: both}
a:内部标签,会将这个浮动盒子高度重新撑开
b:外部标签:会将这个浮动盒子的影响清除,但是不会影响父盒子
注意:一般情况下不会使用这个方式清除浮动,因为这种清除浮动会增加页面的标签,造成结构的混乱
方法三:使用伪元素来清除浮动(一般使用这种)

clearfix:after{
  content:"";//设置内容为空
  height:0;//高度为0
  lineheight:
  0;//行高为0
  display:block;//将文本转为块级元素
  visibility:hidden;//将元素隐藏
  clear:both//清除浮动
}
clearfix{
  zoom:1 // 为兼容IE
}

相关文章

  • CSS-BFC的理解

    简介在使用CSS的过程中,经常会听到触发BFC,但是何为BFC。BFC(Block formatting cont...

  • css BFC使用

    什么是BFC、 块级格式化上下文 Box 是 CSS 布局的对象和基本单位,页面是由若干个Box组成的。 元素的类...

  • CSS清除浮动的方法

    BFC CSS中的BFC BFC:block formatting context块级格式化上下文; BFC 与清...

  • CSS BFC和CSS hack

    简述CSS BFC和CSS hack BFC BFC定义:浮动元素和绝对定位元素,非块级盒子的块级容器(例如inl...

  • 关于 BFC 的布局应用:清除浮动、文字环绕

    关于 BFC 的布局应用:清除浮动、文字环绕 参考文档:理解CSS中BFC BFC(Block Formattin...

  • 快速弄懂 BFC

    参考 BFC 是什么 css 2.1 规范。BFC(Block formatting context)直译为"块级...

  • CSS BFC 扫盲篇

    有人问我对 CSS 的 BFC 了解多少,我一脸懵逼。后来谷歌查询了一番,发现工作中已经多次使用了 BFC 特性却...

  • 前端面试基础题

    BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BF...

  • 前端知识点之谈一谈css盒模型、BFC

    知识点:--css 盒模型--标准模型和 IE 模型--BFC 谈一谈 css 盒模型、BFC 是面试中常见的问题...

  • CSS中重要的BFC

    CSS中有个重要的概念BFC,搞懂BFC可以让我们理解CSS中某些原本诡异(??)的地方。 1. 简介 在解释BF...

网友评论

      本文标题:css BFC使用

      本文链接:https://www.haomeiwen.com/subject/ecfdcctx.html