BFC详解

打印 上一主题 下一主题

主题 1806|帖子 1806|积分 5418

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.界说:
FC的全称为Formatting  Conttext,元素在尺度流里面
块级元素的布局属于Block Formatting  Context(BFC)——即block  level  box都是BFC中布局
行内级元素的布局属于Inline  Formatting  Context (IFC)
2.那么在哪些情况下会创建BFC?


  • 根元素(<html>)
  • 浮动元素(元素的float不是none)
  • 绝对定位元素(元素的position为absolute或fixed)
  • 行内块元素(元素的display为inline-block)
  • overflow盘算值(Computed)不为visible的块元素
  • 弹性元素(display为flex或inline-flex元素的直接子元素)
3.BFC特点:


  • 在BFC中,box会在垂直方向上一个挨着一个的排布
  • 垂直方向的间距由margin属性决定
  • 在同一个BFC,相邻两个box之间的margin会折叠
  • 在BFC中,每个元素的左边缘是紧挨着包含块的左边缘的
4.BFC作用:


  • 办理边距重叠标题
  • 办理高度塌陷标题
5.BFC如何办理边距重叠标题?
给box1的父盒子设置一个overflow: auto;box1在container的BFC里面,box2还在html的BFC里面→两两互不影响
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <title>Document</title>
  7.   <style>
  8.     .container {
  9.       overflow: auto;
  10.     }
  11.     .box1 {
  12.       width: 500px;
  13.       height: 200px;
  14.       background-color: #582a2a;
  15.       margin-bottom: 20px;
  16.     }
  17.     .box2{
  18.       width: 500px;
  19.       height: 200px;
  20.       background-color: #582a2a;
  21.       margin-top: 10px;
  22.     }
  23.   </style>
  24. </head>
  25. <body>
  26.   <div class="container">
  27.     <div class="box1"></div>
  28.   </div>
  29.   <div class="box2"></div>
  30. </body>
  31. </html>
复制代码
6.BFC如何办理高度塌陷标题?
(1)BFC办理高度塌陷必要满意两个条件:


  • 浮动元素的父元素触发BFC,形成独立的块级格式化上下文
  • 浮动元素的父元素的高度是auto
(2)BFC高度是auto的情况下,如何盘算高度?


  • 如果是inline-level,是行高的顶部和底部的间隔
  • 如果有block-level,是由最顶层的块上边缘和最底层块盒子的下边缘之间的间隔
  • 如果有绝对定位元素,将被忽略
  • 如果有浮动元素,那么增加高度以包罗这些浮动元素的下边缘
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <title>Document</title>
  7.   <style>
  8.     .container {
  9.       background-color:pink;
  10.       /* 触发BFC */
  11.       overflow: auto;
  12.     }
  13.     .item{
  14.       width: 500px;
  15.       height: 200px;
  16.       border: 1px solid #000;
  17.       float: left;
  18.       background-color: #ff0;
  19.     }
  20.   </style>
  21. </head>
  22. <body>
  23.   <div class="container">
  24.     <div class="item"></div>
  25.     <div class="item"></div>
  26.     <div class="item"></div>
  27.     <div class="item"></div>
  28.   </div>
  29. </body>
  30. </html>
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表