zoukankan      html  css  js  c++  java
  • BFC

    1.两个概念:

     包含块:包含浮动元素的父元素块。

     浮动元素:脱离了正常的文档布局流,向左(右)靠近包含块外边框显示,这样也会出现文字围绕。

     BFC:块级格式化上下文,它是一个独特的块,里面的元素不会影响到包含块外面,同时包含块内部有独特的布局。

    2.BFC能产生的条件

    2.1 body 根元素: 例如:

    <style>
        div{
          width: 100px;
          height: 100px;
          background: lightblue;
          margin: 100px;
        }
    </style>
    <body>
        <div></div>
        <div></div>
    </body>
    <!-- body高度为300,两个div的margin合并,div之间具体为100px -->

     解决之道:

    <style>
        .container {
          overflow: hidden;   <!-- 通过设置overflow为hidden解决  -->
        }
        p {
            width: 100px;
            height: 100px;
            background: lightblue;
            margin: 100px;
        }
    </style>
    <body>
        <div class="container">
          <p></p>
      </div>
      <div class="container">
          <p></p>
    </div>
    </body>

    2.2 包含块中含有浮动元素

    <div style="border: 1px solid #000;">
    <!--包含了浮动元素,该包含块只有2px的宽度-->
        <div style=" 100px;height: 100px;background: #eee;float: left;"></div>

    解决之道:包含块加属性:overflow: hidden;

    解决多个浮动元素被挤下的情况.例如:

    <div style="height: 100px; 100px;float: left;background: lightblue">我是一个左浮动的元素</div>
    <div style=" 200px; height: 200px;background: #eee">我是一个没有设置浮动, 
    也没有触发 BFC 元素,  200px; height:200px; background: #eee;</div>
    <!--第二个元素有部分被浮动元素所覆盖-->

    解决之道:

    第二个元素添加属性:overflow: hidden;

    3.BFC能解决的问题

    3.1 防止两个块的外边距合并

    3.2 防止文字围绕

    3.3 解决多个浮动元素被挤下的情况。

    3.4 包含块设置BFC,可以包含浮动元素,解决包含块width=0时,使浮动孩子将会脱离页面的常规流。

  • 相关阅读:
    linux php.ini又一次载入问题
    String、StringBuilder、 StringBuffer 深入分析 源代码解析
    hdu 4902 Nice boat(线段树区间改动,输出终于序列)
    鸿雁电器oa系统中决策支持模块效果
    POJ3321:Apple Tree(树状数组)
    ASP.NET六大巨头——内置对象(1)
    insmod hello.ko -1 Invalid module format最简单的解决的方法
    poj
    iOS项目开发实战——制作视图的缩放动画
    读配置文件能够保持顺序的 Java Properties 类
  • 原文地址:https://www.cnblogs.com/liuyinlei/p/8566408.html
Copyright © 2011-2022 走看看