一天搞定CSS:BFC布局与普通文档流布局比较--15

BFC:Block Formatting Contexts–块级元素格式化上下文

1.BFC定义

它决定了块级元素如何对它的内容进行布局,以及与其它元素的关系和相互作用

关键词解释:
块级元素:父级(是一个块元素)

内容:子元素(是一个块元素)

其它元素:与内容同级别的兄弟元素

相互作用:BFC里的元素与外面的元素不会发生影响

2.BFC触发方式

这里写图片描述

2.BFC的布局规则

这里写图片描述

3.普通文档流布局规则

这里写图片描述

4.代码演示

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <!--
            触发BFC的方式(以下任意一条就可以)
                1、float的值不为none
                2、overflow的值不为visible
                3、display的值为table-cell、table-caption和inline-block之一
                4、position的值不为static或者releative中任何一个


            普通文档流的布局规则
                1、浮动的元素是不会被父级计算高度
                2、非浮动元素会覆盖浮动元素的位置
                3、margin会传递给父级
                4、两个相邻的元素上下margin会重叠

            BFC的布局规则
                1、浮动的元素会被父级计算高度(父级触发了BFC)
                2、非浮动元素不会覆盖浮动元素的位置(非浮动元素触发了BFC)
                3、margin不会传递给父级(父级触发了BFC)
                4、两个相邻的元素上下margin不会重叠(给其中一个元素添加一个单独的父级,然后让他的父级触发了BFC)
        -->

        <!--
            1、浮动的元素会被父级计算高度(父级触发了BFC)    使用display不为none触发BFC
        -->
        <div style="border: 1px solid #f00; display: inline-block;">
            <div style="width: 100px; height: 100px; background: green; float: left;">div1----</div>
        </div>

        <!--
            2、非浮动元素不会覆盖浮动元素的位置(非浮动元素触发了BFC)  使用overflow不为visible触发BFC
        -->
        <div style="border: 1px solid #f00; margin-top: 100px;">
            <div style="width: 100px; height: 100px; background: green; float: left;">kaivon1</div>
            <div style="width: 100px; height: 100px; background: red; overflow: hidden;">kaivon2</div>
        </div>

        <!--
            3、margin不会传递给父级(父级触发了BFC)    使用overflow不为visible触发BFC    
        -->
        <div style="background: blue; margin-top: 100px; overflow: hidden;">
            <div style="width: 100px; height: 100px; background: green; margin-top: 100px;">kaivon1</div>
            <div style="width: 100px; height: 100px; background: red;">kaivon2</div>
        </div>

        <!--
            4、两个相邻的元素上下margin不会重叠(给其中一个元素添加一个单独的父级,然后让他的父级触发了BFC)  使用overflow不为visible触发BFC
        -->
        <div style="margin-top: 100px;">
            <div style="width: 100px; height: 100px; background: green; margin: 100px 0;">kaivon1</div>
            <div style="overflow: hidden;">
                <div style="width: 100px; height: 100px; background: red; margin: 100px 0;">kaivon2</div>
            </div>
        </div>
    </body>
</html>

效果图:

这里写图片描述

这里写图片描述

5.对于IE不支持BFC问题的处理,Layout布局

链接地址:http://blog.csdn.net/baidu_37107022/article/details/71640304

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值