• float : left | right | none | inherit;
  • 文档流是文档中可显示对象在排列时所占用的位置。
  • 浮动的定义: 使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停了下来。
  • clear : left | right | both | none | inherit; 元素的某个方向上不能有浮动元素。clear:both;在左右两侧均不允许浮动元素。
  • 清除浮动方法
    • 加高度      问题:扩展性不好

      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
      .box{
      height:200px;
      border:1px solid red;
      }
      .item{
      width:200px;
      height:200px;
      background-color: black;
      float:left;
      }
      </style>
      </head>
      <body>
      <div class="box">
      <div class="item"></div>
      </div>
      </body>
      </html>
    • 父级浮动     问题:页面中所有浮动元素都加浮动,margin左右自动失效(floats bad!)
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
      .box{
      float: left;
      border:1px solid red;
      }
      .item{
      width:200px;
      height:200px;
      background-color: black;
      float:left;
      }
      </style>
      </head>
      <body>
      <div class="box">
      <div class="item"></div>
      </div>
      </body>
      </html>
    • inline-block  问题:margin左右auto失效
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
      .box{
      display: inline-block;
      border:1px solid red;
      }
      .item{
      width:200px;
      height:200px;
      background-color: black;
      float:left;
      }
      </style>
      </head>
      <body>
      <div class="box">
      <div class="item"></div>
      </div>
      </body>
      </html>
    • 空标签          问题:ie6最小高度19px;(解决后ie6下还有2px偏差)
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
      .box{
      border:1px solid red;
      }
      .item{
      width:200px;
      height:200px;
      background-color: black;
      float:left;
      }
      .clearfix{
      clear:both;
      }
      </style>
      </head>
      <body>
      <div class="box">
      <div class="item"></div>
      <div class="clearfix"></div>
      </div>
      </body>
      </html>
    • br清浮动      问题:不符合工作中:结构、样式、行为,三者分离的要求
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
      .box{
      border:1px solid red;
      }
      .item{
      width:200px;
      height:200px;
      background-color: black;
      float:left;
      }
      </style>
      </head>
      <body>
      <div class="box">
      <div class="item"></div>
      <br clear="all"/>
      </div>
      </body>
      </html>
    • after伪类清浮动方法(现在主流方法)
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="UTF-8">
      <title></title>
      <style>
      .box{
      border:1px solid red;
      }
      .item{
      width:200px;
      height:200px;
      background-color: black;
      float:left;
      }
      .clearfix{
      *zoom:1;
      }
      .clearfix:after{
      content:" ";
      display: block;
      clear:both;
      }
      /*
      * after伪类:元素内部末尾添加内容;
      * :after{ //IE6,IE7下不兼容
      * content:"添加的内容";
      * }
      * zoom:缩放
      * 触发IE下haslayout,使元素根据自身neir计算宽高
      * FF不支持
      */
      </style>
      </head>
      <body>
      <div class="box clearfix">
      <div class="item"></div>
      </div>
      </body>
      </html>
    • overflow:hidden;清浮动方法    问题:需要配合宽度或者zoom兼容IE6,IE7
      • overflow:scroll | auto | hidden;  overflow:hidden;溢出隐藏(裁刀!)

        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
        /*清除浮动:清除浮动元素的父级*/
        .box{
        border:1px solid red;
        overflow: hidden;
        }
        .item{
        width:200px;
        height:200px;
        background-color: black;
        float:left;
        }
        </style>
        </head>
        <body>
        <div class="box">
        <div class="item"></div>
        </div>
        </body>
        </html>
  • BFC、haslayout
    • BFC(block formatting context)标准浏览器 

      • float的值不为none
      • overflow的值不为visible
      • display的值为table-cell,table-caption,inline-block中的任何一个
      • position的值不为relative和static
      • width | height | min-width | min-height:(!auto) 
    • haslayout  IE浏览器
      • writing-model:tb-rl
      • -ms-writing-model:tb-rl
      • zoom:{!normal}
  • 浮动的特征
    • 块在一排显示
    • 内联支持宽高
    • 默认内容撑开宽度
    • 脱离文档流
    • 提升层级半层  

float/文档流的更多相关文章

  1. Css问题 margin float 文档流 背景图底部充满

    今天来整理一下做网页遇到的问题吧 1.插入背景图片并使图片居于div底部充满整个行. <style> background:url(xxx.jpg) no-repeat; backgrou ...

  2. float的元素脱离文档流,但不完全脱离,只是提升了半层;

    float的元素脱离文档流,但不完全脱离,只是提升了半层:

  3. 文档流 css中间float clear和布局

    文档流 先说说什么是公文流转  什么流 它是一系列连续的东西 <div style="background-color:pink;width:40px;height:80px;&quo ...

  4. 一天搞定CSS: 浮动(float)及文档流--10

    浮动(float),一个我们即爱又恨的属性.爱,因为通过浮动,我们能很方便地布局: 恨,浮动之后遗留下来太多的问题需要解决,特别是IE6-7(以下无特殊说明均指 windows 平台的 IE浏览器). ...

  5. 脱离文档流两操作,float和position:absolute的区别

    文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,块状元素独占一行,内联元素不独占一行: CSS中脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离 ...

  6. 文档流 css中的float clear与布局

    文档流 先说说什么是文档流  流是什么 就是一串连续的东西 <div style="background-color:pink;width:40px;height:80px;" ...

  7. 页面标准文档流、浮动层、float属性(转)

    CSS float 浮动属性介绍 float属性:定义元素朝哪个方向浮动. 1.页面标准文档流.浮动层.float属性 1.1 文档流 HTML页面的标准文档流(默认布局)是:从上到下,从左到右,遇块 ...

  8. float之脱离文档流

    所谓的文档流:指的是元素在排版过程中,元素自动从左到右,从上到下的顺序排列. 脱离文档流:也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位 只有绝对定位 ...

  9. css布局与文档流的关系之float(浮动)

    所谓文档流,指元素在排版布局的过程中,元素会自动从左到右,从上到下的流式排列.脱离文档流呢,就是元素打乱了这个排列,或是从排版中拿走. 说到文档流呢,我们先来说一下元素,每个元素呢,都有display ...

随机推荐

  1. redis学习资料汇总

    redis学习资料汇总 2017年01月07日 22:10:37 阅读数:281 转载:http://blog.csdn.net/wtyvhreal/article/details/50427627 ...

  2. 如何理解Java中参数传递只能传值?

    以前学习C#的时候,是完全在工作岗位上学习,一些底层较为深入的道理都不是很清楚.如今学习了Java,对于Java参数传递只能传值,不能传引用(指针)感到很困惑,在C#中不是常常说把某个引用传递到函数中 ...

  3. 【个人训练】The Cow Lexicon(POJ-3267)

    继续大战dp.2018年11月30日修订,更新一下现在看到这个题目的理解(ps:就现在,poj又503了). 题意分析 这条题目的大意是这样的,问一字符串内最少删去多少的字符使其由给定的若干字符串构成 ...

  4. Linux-Shell脚本编程-学习-7-总结前面开启后面的学习

    国庆前期后国庆回来也都比较忙,把书一放下,在那起来,就难了,发现好多都开始忘记了,今天好不容易硬着头片看来两章,算是马马虎虎的把前面的基础性质的只是看完了吧. 后面讲开始学习Shell编程的高级阶段, ...

  5. Python 3基础教程24-读取csv文件

    本文来介绍用Python读取csv文件.什么是csv(Comma-Separated Values),也叫逗号分割值,如果你安装了excel,默认会用excel打开csv文件. 1. 我们先制作一个c ...

  6. CodeForces - 948C(前缀和 + 二分)

    链接:CodeForces - 948C 题意:N天,每天生产一堆雪体积 V[i] ,每天每堆雪融化 T[i],问每天融化了多少雪. 题解:对 T 求前缀和,求每一堆雪能熬过多少天,再记录一下多余的就 ...

  7. Laxcus大数据管理系统2.0(4)- 第一章 基础概述 1.3 节点

    1.3 节点 按照我们给Laxcus集群的设计定义,Laxcus集群被分为内部和外部两个网络环境.内部网络由集群的所有权人负责实施和管理,为保证集群能够有效可靠运行,需要遵守一系列的集群部署和管理规定 ...

  8. ThinkPHP5 Model分层及多对多关联的建立

    笔者最近入手ThinkPHP5,准备用它来实现一个学生作业管理系统.简单的说就是学生在上面交老师布置的课程作业,老师也可以发布修改作业.过程中势必会碰到学生.班级和老师之间的关系.它们之间的关系是多对 ...

  9. 21天学习caffe(一)

    ubuntu环境安装caffe1 安装依赖 apt-get install libatlas-base-dev apt-get install python-dev apt-get install l ...

  10. 基于规则的中文分词 - NLP中文篇

    之前在其他博客文章有提到如何对英文进行分词,也说后续会增加解释我们中文是如何分词的,我们都知道英文或者其他国家或者地区一些语言文字是词与词之间有空格(分隔符),这样子分词处理起来其实是要相对容易很多, ...