• BFC (Block formatting context)


     一:BFC 是什么

         MDN解释:         

               A block formatting context is a part of a visual CSS rendering of a Web page. It is the region in which the layout of block boxes occurs and in which floats interact with each other,一个块级格式化上下文[BFC]是可视化CSS渲染网页的一部分,它是一个区域,块级布局,相互浮动在这个区域发生。个人翻译参考百度翻译

              A block formatting context contains everything inside of the element creating it that is not also inside a descendant element that creates a new block formatting context.一个BFC块区域包含所有里面的元素,除子元素创建了新的BFC。(因为各个BFC是一个独立的区域,BFC之间相互不影响)

          所以:由于html(根元素)是独立的BFC,在里面的浮动,块级布局等才会相互影响,若新创建BFC,则相邻BFC之间的浮动元素,或是其他元素将不会影响。如,相邻两个块级元素的外边距折叠的情况将不会发生。

     二:如何触发BFC

    • position为absolute 或者fixed  (总结为 脱离文档流) 
    • float不为none(也是要脱离文档流)  
    • the root element or something that contains it(根元素可产生独立BFC)
    • display值为:inline-block,table-cell,table-caption,flex,inline-flex(flex和inline-flex是css3的特性) 
    • overflow:不为visible的任何其他值
    • fieldset元素

     三:BFC的作用

    • BFC就是一种布局方式,在这种布局方式下,内部盒子们自所在的 containing block 顶部起一个接一个垂直排列,水平方向上撑满整个宽度 (除非内部的盒子自己内部建立了新的 BFC)。  developer center上面有对BFC的一段描述:

      一个 block formatting context 是web页面可视化CSS渲染的一个部分,是一块 block boxes 排布以及 float 元素相互作用的区域。可以理解为一个作用范围,在一个BFC里的布局与其之外的布局不相关或者说不相互影响

    • 延伸作用1:两个独立的BFC之间不会折叠
    • 延伸作用2:BFC可以包裹浮动元素,清除浮动的另一种方法。
    • 延伸作用3:解决层内浮动溢出问题,

                          .实例

                              

                               

                              chrome浏览器效果:

                              

                             如图:浮动元素溢出,为content元素创建独立BFC包含浮动元素,可解决浮动溢出

                                

                               

      • 延伸作用4  : 可以阻止元素被浮动元素覆盖    
      •  

          

    参考:http://www.cnblogs.com/youxin/p/3345120.html

            https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context

    在程序媛的路上,越走越用劲儿:)
  • 相关阅读:
    vba的单元格引用的总结
    为IE窗口添加菜单实例
    给SQLServer2000升级遇到的问题
    图片上传问题(含网页图片预览)
    javascript小技巧【待续】
    成功部署JSP网站的经验总结
    VBA实例
    为JDK增加新的jar包
    理解绝对定位和相对定位布局
    资源收集
  • 原文地址:https://www.cnblogs.com/AliceX-J/p/5221951.html
Copyright © 2020-2023  润新知