• 初析BFC


    初学BFC,感觉理解有点困难,现在简单分析一下BFC

     BFC (Block Formatting Context) 块级格式化上下文

    是一个环境,一个隔离的独立容器,与布局相关,写了 html 标签他就已经是一个 BFC 环境了。给其余的 box 设置 BFC 环境就是为了让它成为一个独立的空间。表现原则为:内部子元素再怎么翻江倒海都不会影响外部的元素,反之如此。避免margin穿透啊、清除浮动什么的。

    box 是 CSS 布局的对象和基本单位,直观来说就是一个页面由很多个 box 组成,元素的类型和 display 属性决定了这个 box 的类型,不同类型的 box 会参与不同的 formatting context

     display 为 block、list-item、table 的元素会生成 block-level box 并且参与BFC;
     display 为 inline、inline-block、inline-table 的元素会生成 inline-level-box 并且参与IFC;

    formatting context 是 W3C CSS2.1 规范里的一个概念。它是页面中的一块渲染区域,并且有一套规则,它规定了其子元素将如何定位,以及和其他元素的关系和相互作用。

    CSS2.1 中只有 BFC 和 IFC, CSS3 中还增加了 GFC 和 FFC。

    BFC布局规则:

    1. 内部的 box 会在垂直方向一个接一个放置
    2. box 垂直方向的距离由 margin 决定,属于同一个 BFC 的2个相邻 box 的 margin 会重叠
    3. 每个元素的 margin box 的左边与包含块 border box 的左边相接触(对于从左往右的格式化,否则相反)即使浮动也是如此
    4. BFC 的区域不会与 float box 重叠
    5. BFC 就是页面上的一个隔离的独立容器,容器里的子元素与外界无关不会相互影响
    6. 计算 BFC 高度时,浮动元素也参与计算

    何时会触发bfc呢:常见的如下:

    1. 根元素
    2. float;
    3. overflow: auto、scroll、hidden;
    4. display: table-cell、table-caption、inline-block、flex、inline-flex;
    5. position:absolut、fixed;

  • 相关阅读:
    Content-Type: multipart/form-data; boundary=
    -ErrorAction SilentlyContinue
    計量文件夾大小
    使用tesseract識別簡單的圖形碼
    适用于演示场景的修改网页内容
    分页展示与标题行
    查询当前脚本运行环境
    选项菜单
    tomcat创建虚拟目录存储图片
    springmvc记录(页面回显、url模板映射、自定义参数绑定、全局异常处理、文件上传、拦截器、hibernate validation数据校验、静态资源映射)
  • 原文地址:https://www.cnblogs.com/rwalker/p/5402052.html
Copyright © 2020-2023  润新知