美文网首页
★ BFC / 浮动

★ BFC / 浮动

作者: 行走的蛋白质 | 来源:发表于2020-06-08 14:20 被阅读0次
  • 概念
  • 触发 BFC
  • 特性及应用


概念

  • BFC
  • Block Formatting Contexts 块级格式化上下文
  • 具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素。

触发 BFC

  • body 根元素
  • 浮动元素:float 属性除 none 以外的值
  • 绝对定位元素:position 属性为 absolute 或 fixed
  • display 属性值为 inline-block、table-cells、flex 的元素
  • overflow 除了 visible 以外的值:hidden、auto、scroll

特性及应用

同一个 BFC 下元素外边距会发生折叠
<head>
div{
    width: 100px;
    height: 100px;
    background: lightblue;
    margin: 100px;
}
</head>
<body>
    <div></div>
    <div></div>
</body>
同一个 BFC 下元素外边距发生重叠
  • 原因:因为两个 div 元素都处于同一个 BFC 容器下 (这里指 body 元素) 所以第一个 div 的下边距和第二个 div 的上边距发生了重叠,所以两个盒子之间距离只有 100px,而不是 200px。
  • 如果想要避免外边距的重叠,可以将其放在不同的 BFC 容器中。
BFC 可以包含浮动的元素 ( 清除浮动 )
<div style="border: 1px solid #000;">
    <div style="width: 100px;height: 100px;background: #eee;float: left;"></div>
</div>
BFC 可以包含浮动的元素 ( 清除浮动 )
  • 由于容器内元素浮动,脱离了文档流,所以容器只剩下 2px 的边距高度。如果使触发容器的 BFC,那么容器将会包裹着浮动元素。
BFC 可以阻止元素被浮动元素覆盖
<div style="height: 100px;width: 100px;float: left;background: lightblue">我是一个左浮动的元素</div>
<div style="width: 200px; height: 200px;background: #eee">我是一个没有设置浮动, 
也没有触发 BFC 元素, width: 200px; height:200px; background: #eee;</div>
BFC 可以阻止元素被浮动元素覆盖
  • 这时候其实第二个元素有部分被浮动元素所覆盖,(但是文本信息不会被浮动元素所覆盖) 如果想避免元素被覆盖,可触第二个元素的 BFC 特性,在第二个元素中加入 overflow: hidden

清除浮动

浮动
  • 浮动的元素脱离文档流, 之前占用的空间回释放, 会造成父元素的高度坍塌
清除浮动的方法
  • 将父级元素变成 BFC 盒子, 比如父级添加 overflow: hidden;
  • 浮动元素后面添加一个块级元素,并添加 clear: both 属性
  • 通过给父级元素添加伪类 after,达到清除浮动的目的;
.outer {
  background-color: #999;
  /*overflow: hidden;*/
}
.inner {
  float: left;
  background-color: #f9f9f9;
  height: 100px;
  width: 100px;
}
/*.clear {
  clear: both;
}
*/
.outer::after {
  display: block;
  content: '';
  clear: both;
}
</style>
<body>
  <div class="outer">
    <div class="inner"></div>
    <!-- <div class="clear"></div> -->
  </div>
</body>

相关文章

  • 技术知识点整理

    清除浮动 BFC清除浮动浮动的父级末尾插入块级元素清除浮动 BFC(Block Formatting Contex...

  • BFC [块级格式化上下文]

    1、BFC 会阻止垂直外边框合并2、BFC 不会重叠浮动元素3、BFC 可以包含浮动 4、任何元素设置了float...

  • BFC

    flow-root:让当前元素触发BFC BFC的两个功能:1.爸爸管儿子用BFC包住浮动元素(不是清除浮动,清除...

  • 浮动/BFC

    浮动 通过浮动,我们能很方便地布局,但是也会造成各种影响. BFC 什么是BFC? 创建了 BFC的元素就是一个独...

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

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

  • ★ BFC / 浮动

    概念 触发 BFC 特性及应用 概念 BFC Block Formatting Contexts 块级格式化上下文...

  • 清除浮动

    结合多种清除浮动的方式,总结起来即只要触发BFC即可清除浮动,可以触发BFC的css样式包括: display: ...

  • 浮动与定位

    主要内容: 浮动的介绍、清除浮动、各种定位、BFC以及外边距合并的介绍。 浮动 什么是浮动元素 浮动元素是floa...

  • 7、浮动样式与BFC常见方法

    display:inline-block; // 内联块 float:浮动 BFC:就是清浮动,用来处理元素脱离...

  • CSS BFC和CSS hack

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

网友评论

      本文标题:★ BFC / 浮动

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