• 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. HTML 特效标签

    HTMl 文字移动<MARQUEE scrollAmount=2 scrollDelay=150 direction=up height=120> 内容 </marquee>s ...

  2. mysql8.0.14 安装

    1.下载 地址:https://dev.mysql.com/downloads/mysql/ 找到zip压缩文件. 2.配置环境变量 把解压后的路径配置到环境变量中 3.安装 在解压后的文件夹中新建m ...

  3. 自动化测试---mybatis的使用

    mybatis如何实现了对数据库的操作: 1.通过Resources.getResourceAsReader()或者 Resources.getResourceAsStream()加载mybatis. ...

  4. Python网络编程(线程通信、GIL、服务器模型)

    什么是进程.进程的概念? 进程的概念主要有两点: 第一,进程是一个实体.每一个进程都有它自己的地址空间, 一般情况下,包括文本区域(text region).数据区域(data region)和堆栈( ...

  5. 剑指offer-矩形覆盖10

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? # -*- coding:utf-8 -*- class S ...

  6. Struts2—整合Spring

    Struts2—整合Spring Spring框架是一个非常优秀的轻量级java EE容器,大部分javaEE应用,都会考虑使用Spring容器来管理应用中的组件. Struts2是一个MVC框架,是 ...

  7. Python之tornado框架原理

    Python web框架 1.简单概念 tornado socket.逻辑处理 Django flask 逻辑处理 第三方处理模块(包含了socket) jinja2模块 Models 数据库处理 V ...

  8. Spring Boot学习(二):配置文件

    目录 前言 方式1:通过配置绑定对象的方式 方式2:@Value("${blog.author}")的形式获取属性值 相关说明 注解@Value的说明 参考 前言 Spring B ...

  9. iOS-SDWebImage的原理以及使用流程

    SDWebImage 支持异步的图片下载+缓存,提供了 UIImageView+WebCacha 的 category,方便使用.SDWebImage加载图片的流程: 1. 入口 setImageWi ...

  10. oracle ocp 052考试学习

    1.数据字典存储在SYSTEM表空间中. 2.SYSAUX可以offline: SQL>alter tablespace sysaux offline; 3.SYSTEM和SYSAUX都是永久表 ...