BFC

作者: 废废_siri | 来源:发表于2019-01-31 16:53 被阅读0次

    BFC(块级格式化上下文)

    作用

    块级格式化上下文,是一个独立的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。

    BFC布局规则

    <1>同一个BFC下的Box在页面上垂直排列(一个块元素独占一行)
    <2>BFC的区域不与float box重叠
    场景:
    两列布局:左边固定,右边自适应
    <3>属于同一个BFC的两个相邻margin会发生重叠
    场景:
    --垂直方向相邻margin重叠
    解决方案:
    --父子margin重叠
    解决方案:父元素开启BFC(让父子元素不处于同一个BFC)
    <4>计算BFC高度时,浮动元素也参与计算
    场景:清除浮动
    --原理:当父元素开启BFC之后,在计算父元素的高度时,其中浮动的子元素也会参与计算

    怎么产生BFC

    <1>根元素(html /body)
    <2>float不为none;
    <3>position为absolute /fixed
    <4>overflow不为visible
    <5>display为inline-block /table


    Haslayout

    是IE的一个私有概念,决定了元素如何对其内容定位和尺寸进行计算,以及与其他元素的关系和相互作用。
    一个元素“拥有布局”时,它会负责本身及其子元素的尺寸和定位。
    如果一个元素“没有拥有布局”,那么它的尺寸和位置由最近的拥有布局的祖先元素控制。(在IE6 7中使用haslayout)

    --默认拥有布局的元素
    html, body, table, tr, td, img, hr,
    input, select, textarea, button,
    iframe, embed, object, applet, marquee

    --触发haslayout
    float: left或right
    display: inline-block
    position: absolute
    width: 除auto外任何值
    height: 除auto外任何值
    zoom: 除normal外任何值
    writing-mode: tb-rl

    --在IE7中,以下属性也可以触发元素的haslayout
    min-height: 任意值
    min-width: 任意值
    max-height: 除none 外任意值
    max-width: 除none 外任意值
    overflow: 除visible外任意值,仅用于块级元素
    overflow-x: 除visible 外任意值,仅用于块级元素
    overflow-y: 除visible 外任意值,仅用于块级元素
    position: fixed

    相关文章

      网友评论

          本文标题:BFC

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