zoukankan      html  css  js  c++  java
  • 清浮动-BFC

    一、float浮动

    1、特性

    •  脱离文档流
    • 块状该元素(一个内联元素,设置了float,则相当于为该内联元素设置了 display:block)
    •  没有margin重叠
    • 包裹性

    2、清浮动的方法

    .在浮动元素尾部加空div

    <div id="wrap" class="warp">
    	<div id="one" class="clo" ></div>
    	<div id="two" class="clo"></div>
    	<div id="three" class="clo"></div>
    	<div id="four" class="clo"></div> 
    	<div style="clear:both"></div>
    </div>
    
    .warp{
        width:1260px;
        margin:auto;
        border:1px solid red;
    }
    clo{
        width:80%;
        height:100px;
        float:left;
        background-color:#e34cf1;
        border:5px solid #fff;
    }

    父元素设置overflow:hidden;

    <div id="wrap2" class="warp">
        <div id="one" class="clo" ></div>
        <div id="two" class="clo"></div>
        <div id="three" class="clo"></div>
        <div id="four" class="clo"></div> 
    </div>
    #wrap2{
        border:2px solid green;
        overflow:hidden;
    }

    为父元素添加伪类

    <div id="wrap3" class="warp">
        <div id="one" class="clo" ></div>
        <div id="two" class="clo"></div>
        <div id="three" class="clo"></div>
        <div id="four" class="clo"></div> 
    </div>
    #wrap3:after{
        content:" ";
        display:block;
        height:0px;
        clear:both;
    }

     父元素设置float属性

    #wrap3{
       float:left;
    }

    二、文档流

    • 在一个块级排版上下文中,盒子是从包含块顶部开始,垂直的一个接一个的排列的
    • 相邻两个盒子之间的垂直的间距是被margin属性所决定的,在一个块级排版上下文中相邻的两个块级盒之间的垂直margin是折叠的

    三、BFC

    BOX盒子,页面的基本构成元素。分为 inline 、 block 和 inline-block三种类型的BOX
    FC: Formatting Context是W3C的规范中的一种概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,会去【计算子元素的大小,以及和其他元素的关系和相互作用】
    Block fomatting context (简称BFC)
    Inline formatting context (简称IFC)

    1、特点:

    • 内部的box会在垂直方向,从顶部开始一个接着一个地放置(文档流)
    • box 垂直方向的距离由margin(外边距)决定。属于同一个BFC的两个相邻box的margin会发生叠加(文档流)
    • BFC的区域不会与float box叠加
    • 计算BFC高度时,浮动元素也参与计算
    • 每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。

    2、触发方式

    • 设置除 float:none 以外的属性值(如:left | right)就会触发BFC
    • 设置除 overflow: visible 以外的属性值(如: hidden | auto | scroll)就会触发BFC
    • 设置 display属性值为: inline-block | flex | inline-flex | table-cell | table-caption 就会触发BFC
    • 设置 position 属性值为:absolute | fixed 就会触发BFC
    • 使用 fieldset 元素(可以给表单元素设置环绕边框的html元素)也会触发BFC
  • 相关阅读:
    Android四大组件--事务详解(转)
    Android课程---关于数据存储的学习(3)之数据库和事务
    初学DW资料——js的prompt的返回值
    初学DW资料——target=的理解
    初学JAVA资料——链表
    初学JAVA资料——哈希表
    初学JAVA资料——线程
    初学JAVA——代码练习(验证字符串结束字符)
    初学JAVA——代码练习(数学运算)
    初学JAVA——代码练习(字符串)
  • 原文地址:https://www.cnblogs.com/pangys/p/5732349.html
Copyright © 2011-2022 走看看