zoukankan      html  css  js  c++  java
  • BFC

    BFC是什么

    Block Formatting Context (块格式化上下文)

    首先我们看看那W3C上是怎么定义的

    Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and table-captions) that are not block boxes, and block boxes with ‘overflow’ other than ‘visible’ (except when that value has been propagated to the viewport) establish new block formatting contexts for their contents.
    In a block formatting context, boxes are laid out one after the other, vertically, beginning at the top of a containing block. The vertical distance between two sibling boxes is determined by the ‘margin’ properties. Vertical margins between adjacent block-level boxes in a block formatting context collapse.

    浮动元素和绝对定位元素,非块级盒子的块级容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不为“visiable”的块级盒子,都会为他们的内容创建新的BFC(块级格式上下文)。

    在BFC中,盒子从顶端开始垂直地一个接一个地排列,两个盒子之间的垂直的间隙是由他们的margin 值所决定的。在一个BFC中,两个相邻的块级盒子的垂直外边距会产生折叠。

    什么时候创建BFC 

    float 除了none以外的值 
    overflow 除了visible 以外的值(hidden,auto,scroll ) 
    display (table-cell,table-caption,inline-block, flex, inline-flex) 
    position值为(absolute,fixed) 
    fieldset元素 

    我们通过一个实例看看

    <div style="background-color: green; 300px;height: 300px ">
    <div style="background-color: red; 50px;height: 50px;float: left">
    </div>
     <p>
    sssssdddddddddddddddddddddddddd
    sssssdddddddddddddddddddddddddd
    sssssdddddddddddddddddddddddddd
    sssssdddddddddddddddddddddddddd
    sssssdddddddddddddddddddddddddd
    sssssdddddddddddddddddddddddddd

    </p>
    </div>

    我们让文字位于红色模块的右侧,通常采用浮漂float,添加float

     <div style=" 50px;height: 50px;float: left">

    结果:

    在红色模块的下面并没让文字靠右。这个时候我们得给文字添加overflow: hidden,生成一个BFC这个就是我们想要的结果。

     <p style="overflow: hidden">

  • 相关阅读:
    安装 oracle 11g 发行版 出现错误:由于以下错误,Enterprise Manager配置失败,启动Database Control时出错
    ORACLE_SID的查找
    visual studio 2017 编译v140 TRACKER : error TRK0005: Failed to locate: "CL.exe". 系统找不到指定的文件
    mysql 数据库表名大小写问题
    Windows下部署mongodb
    where case 使用
    虚拟机,云服务器搭建vulhub靶场
    [De1CTF 2019]SSRF Me
    [2020YCTF]web1-rce_nopar
    [2020YCTF]
  • 原文地址:https://www.cnblogs.com/limit1/p/3936296.html
Copyright © 2011-2022 走看看