BFC 布局概念总结

简介: BFC 块级格式化上下文布局规则内部的Box会在垂直方向,一个接一个的放置。Box垂直距离有margin决定,属于同一个BFC的两个相邻Box的margin垂直方向上回发生重叠。每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。

BFC 块级格式化上下文

布局规则

  • 内部的Box会在垂直方向,一个接一个的放置。
  • Box垂直距离有margin决定,属于同一个BFC的两个相邻Box的margin垂直方向上回发生重叠。
  • 每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
  • BFC的区域不会与float box重叠
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素;外面的也不会影响里面的。
  • 计算BFC的高度时,浮动元素也参与计算;也就是说可以用BFC来清楚浮动

生产BFC的规则

  • 根元素可以生成BFC
  • float属性不为none
  • position属性为absolute或fixed
  • display属性为flex、inline-block、table-cell、inline-flex
  • overflow不为visible

遵循以上规则就可以产生BFC块级格式化区域

BFC应用

  • 清除浮动

    .父元素{  
      overflow: hidden/auto;
      display: flex/inline-flex;
      float属性不为none
      position:absolute/fixed;
    }
    使用以上四种方式将父元素转化为BFC就可以清除浮动
  • 自适应两栏三栏布局

    使用以上四种方式将非浮动元素转化为BFC就可以清除浮动
    原理:BFC不与浮动元素重叠
  • 防止垂直margin重叠

     在一个元素外再套一个div,并把这个转化为BFC
相关文章
|
供应链 监控 安全
物联网(IoT)的安全性挑战及其应对策略
【5月更文挑战第9天】物联网(IoT)的快速发展带来设备多样性和安全漏洞,易受DDoS攻击、数据隐私泄露及供应链威胁。为应对挑战,需强化设备安全设计,建立认证和授权机制,加密数据传输,实施安全事件监控及加强供应链管理,以确保IoT的健康发展。
|
Java 测试技术 数据安全/隐私保护
🚀Java零基础-continue语句详解
【10月更文挑战第3天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
512 4
|
安全 测试技术 API
urllib3库的介绍以及使用
`urllib3`是Python的HTTP库,支持HTTP/HTTPS,自动管理连接池,提供代理、证书配置,重定向处理等功能。其优势在于连接池管理和HTTPS支持。要安装,使用`pip install urllib3`。发起HTTP请求如`http.request('GET', 'http//example.com')`。处理响应包括状态码、头部和内容。高级功能包括连接池管理、超时和重试策略。注意线程安全、资源释放及错误处理。官方文档和相关文章可提供更多信息。
710 0
|
编解码 Linux iOS开发
FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流
OBS(Open Broadcaster Software)是一款开源、跨平台的直播和和Linux。官网为<https://obsproject.com/>。要使用OBS进行直播,需执行四步:1) 下载并安装OBS Studio(<https://obsproject.com/download>),2) 启动流媒体服务器如MediaMTX,生成RTMP推流地址,3) 打开OBS Studio,设置直播服务为自定义RTMP服务器(127.0.0.1:1935/stream),调整视频分辨率,4) 添加视频来源并开始直播。同时,通过FFmpeg的拉流程序验证直播功能正常。
749 4
FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流
|
机器学习/深度学习 人工智能 监控
生成式 AI 与 LangCHain(二)(4)
生成式 AI 与 LangCHain(二)
623 5
|
机器学习/深度学习 编解码 关系型数据库
信道编码译码及MATLAB仿真(一)
信道编码译码及MATLAB仿真
356 2
|
JavaScript 前端开发 网络架构
函数柯里化:JavaScript中的高级技巧
函数柯里化:JavaScript中的高级技巧
|
弹性计算 Linux 应用服务中间件
手动搭建WordPress(CentOS 8)
WordPress是使用PHP语言开发的博客平台,在支持PHP和MySQL数据库的服务器上,您可以用WordPress架设自己的网站,也可以用作内容管理系统(CMS)。本教程介绍如何在Linux操作系统的ECS实例上搭建WordPress网站。
4469 6
|
存储 关系型数据库 数据库
数据库索引的原理,为什么要用 B+树,为什么不用二叉树?
数据库索引的原理,为什么要用 B+树,为什么不用二叉树?