美文网首页
关于CSS的BFC

关于CSS的BFC

作者: 立的flag一直在倒 | 来源:发表于2018-07-03 21:25 被阅读0次

    参考:理解CSS布局和BFC
    CSS深入理解流体特性和BFC特性下多栏自适应布局

    1、概念
    BFC(Block Formatting Context):块级格式化上下文。
    BFC元素特性的表现原则就是:无论内部元素处于什么状态,都不影响外部元素。
        当盒子里的某一个元素设置为浮动时,盒子元素的高度可能会低于浮动元素的高度。可以将BFC看作页面中的一个迷你布局。一旦创建,它其中的所有元素都被包裹,盒子不会因为内部元素浮动而坍塌。

    2、触发情况
    (1) float的值不为none;
    (2) overflow的值为auto, scroll, 或hidden;
    (3) display的值为table-cell, table-caption, 或者inline-block;
    (4) display:flow-root; (兼容性不高)
    (5) position不为relative和static。

    3、优点
    (1) 自适应内容由于封闭,更健壮,容错性强。比方说,内部clear:both不会与兄弟float产生矛盾。而纯流体布局,clear:both会让后面内容无法和float元素在一个水平上,产生布局问题;
    (2) 自适应内容自动填满浮动以为区域,无需关心浮动元素宽度,可以整站大规模应用。而纯流体布局,需要大小不确定的margin/padding等值撑开合适间距,无法CSS组件化。

    4、一些缺陷
    (1) float:left 浮动元素本身BFC化,然而浮动元素有破坏性和包裹性,失去了元素本身的流体自适应性,因此,无法用来实现自动填满容器的自适应布局;
    (2) position: absolute; 脱离文档流;
    (3) display:table-cell 让元素表现得像单元格一样,IE8+以上浏览器才支持。

    5、自适应布局可用方法:
    (1) overflow:auto/hidden IE7+
    (2) display:inline-block IE6/IE7
    (3) display:table-cell IE8+

    6、BFC一些有用的功能
    (1) 阻止外边距叠加
    (2) 停止去围绕浮动元素

    相关文章

      网友评论

          本文标题:关于CSS的BFC

          本文链接:https://www.haomeiwen.com/subject/nyshjftx.html