学习BFC格式化上下文笔记

栏目: Html · 发布时间: 5年前

内容简介:块级格式化上下文(W3C对BFC的定义如下:

BFC格式化上下文

块级格式化上下文( Block Fromatting Context )是按照块级盒子布局的。

BFC 是一个独立的布局环境,其中的元素布局是不受外界的影响,并且在一个 BFC 中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。

W3C对BFC的定义如下:

浮动元素和绝对定位元素,非块级盒子的块级容器(例如 inline-blocks , table-cells , 和 table-captions ),以及 overflow 值不为 “visiable” 的块级盒子,都会为他们的内容创建新的 BFC (块级格式上下文)。

即满足以下其中任一或多个条件:

1、 float 的值不是 none

2、 position 的值不是 static 或者 relative

3、 display 的值是 inline-blocktable-cellflextable-caption 或者 inline-flex

4、 overflow 的值不是 visible

作用:

  • 内部的 Box 会在垂直方向上一个接一个的放置
  • 垂直方向上的距离由 margin 决定。(完整的说法是:属于同一个 BFC 的两个相邻 Boxmargin 会发生重叠,与方向无关。)
  • 每个元素的左外边距与包含块的左边界相接触(从左向右),即使浮动元素也是如此。(这说明
    BFC 中子元素不会超出他的包含块,而 positionabsolute 的元素可以超出他的包含块边界)
  • BFC 的区域不会与 float 的元素区域重叠,计算 BFC 的高度时,浮动子元素也参与计算
  • BFC 就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面元素,反之亦然

实例1: BFC 垂直方向边距重叠

<section class="box" id="sec">
        <style media="screen">
            #sec {
                background: #f00;
            }
            .child {
                height: 100px;
                margin-top: 10px;
                background: yellow
            }
        </style>
        <article class="child"></article>
    </section>

学习BFC格式化上下文笔记

<section class="box" id="sec">
        <style media="screen">
            #sec {
                background: #f00;
                overflow: hidden;
            }
            
            .child {
                height: 100px;
                margin-top: 10px;
                background: yellow
            }
        </style>
        <article class="child"></article>
    </section>

学习BFC格式化上下文笔记

实例2: BFC 不与 float 重叠

<section id="layout">
        <style media="screen">
            #layout {
                background: red;
            }
            
            #layout .left {
                float: left;
                width: 100px;
                height: 100px;
                background: pink;
            }
            
            #layout .right {
                height: 110px;
                background: #ccc;
                /* overflow: auto; */
            }
        </style>
        <div class="left"></div>
        <div class="right"></div>
    </section>

学习BFC格式化上下文笔记

<section id="layout">
        <style media="screen">
            #layout {
                background: red;
            }
            
            #layout .left {
                float: left;
                width: 100px;
                height: 100px;
                background: pink;
            }
            
            #layout .right {
                height: 110px;
                background: #ccc;
                /* 添加下面属性 */
                overflow: auto;
            }
        </style>
        <div class="left"></div>
        <div class="right"></div>
    </section>

学习BFC格式化上下文笔记

实例3: BFC 子元素即使是 float 也会参与计算

<section id="float">
        <style media="screen">
            #float {
                background: red;
                /* 添加下面属性 */
                /* overflow: auto; */
            }
            
            #float .float {
                float: left;
                font-size: 30px;
                background-color: yellow;
            }
        </style>
        <div class="float">我是浮动元素</div>
    </section>

学习BFC格式化上下文笔记

<section id="float">
        <style media="screen">
            #float {
                background: red;
                /* 添加下面属性 */
                overflow: auto;
            }
            
            #float .float {
                float: left;
                font-size: 30px;
                background-color: yellow;
            }
        </style>
        <div class="float">我是浮动元素</div>
    </section>

学习BFC格式化上下文笔记

学习BFC格式化上下文笔记


以上所述就是小编给大家介绍的《学习BFC格式化上下文笔记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Go Web 编程

Go Web 编程

[新加坡]Sau Sheong Chang(郑兆雄) / 黄健宏 / 人民邮电出版社 / 2017-11-22 / 79

《Go Web 编程》原名《Go Web Programming》,原书由新加坡开发者郑兆雄(Sau Sheong Chang)创作、 Manning 出版社出版,人名邮电出版社引进了该书的中文版权,并将其交由黄健宏进行翻译。 《Go Web 编程》一书围绕一个网络论坛 作为例子,教授读者如何使用请求处理器、多路复用器、模板引擎、存储系统等核心组件去构建一个 Go Web 应用,然后在该应用......一起来看看 《Go Web 编程》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具