上次我们一起对盒子模型进行了一定的了解,今天我们就对css浮动布局做一下研究。首先我们来了解一下网页基本布局的三种形式。

  首先我们来了解一下什么是网页布局:

    • 网页的布局方式其实就是指浏览器是如何对网页中的元素进行排版的

  网页基本布局主要有三种形式:一是标准流,而是浮动流,三是定位流。

    • 标准流(文档流/普通流)排版方式

      • 其实浏览器默认的排版方式就是标准流的排版方式
      • 在CSS中将元素分为2大类, 分别是块级元素/行内元素
      • 还有一类是行内块级元素,它本质上是行内元素,不会占据一行,但又具有块级元素的属性,可以调整宽高和边距
      • 在标准流中有两种排版方式, 一种是垂直排版, 一种是水平排版
      • 垂直排版, 如果元素是块级元素, 那么就会垂直排版
      • 水平排版, 如果元素是行内元素, 那么就会水平排版
    • 浮动流排版方式

      • 浮动流是一种”半脱离标准流”的排版方式
      • 浮动流只有一种排版方式, 就是水平排版. 它只能设置某个元素左对齐或者右对齐
    • 注意点:

      • 浮动流中没有居中对齐, 也就是没有center这个取值
      • 在浮动流中是不可以使用margin: 0 auto;
    • 特点:

      •   在浮动流中是不区分块级元素/行内元素/行内块级元素的
      •   无论是块级元素/行内元素/行内块级元素都可以水平排版
      •   在浮动流中无论是块级元素/行内元素/行内块级元素都可以设置宽高
      •   综上所述, 浮动流中的元素和标准流中的行内块级元素很像
    • 定位流排版方式

      •   定位流这里先不做解释

  下面我们来一起了解下浮动布局的特点:

     1、浮动元素的脱标:

    • 什么是浮动元素的脱标?

      •   脱标: 脱离标准流
      •   当某一个元素浮动之后, 那么这个元素看上去就像被从标准流中删除了一样, 这个就是浮动元素的脱标
    • 浮动元素脱标之后会有什么影响?

      •   如果前面一个元素浮动了, 而后面一个元素没有浮动 , 那么这个时候前面一个元就会盖住后面一个元素

  2、浮动元素排序规则

  • 浮动元素排序规则
  • 相同方向上的浮动元素, 先浮动的元素会显示在前面, 后浮动的元素会显示在后面
  1. <style>
  2. .box1{
  3. float: left;
  4. width: 50px;
  5. height: 50px;
  6. background-color: red;
  7. }
  8. .box2{
  9. float: left;
  10. width: 100px;
  11. height: 100px;
  12. background-color: pink;
  13. }
  14. .box3{
  15. float: left;
  16. width: 150px;
  17. height: 150px;
  18. background-color: yellow;
  19. }
  20. </style>

  • 不同方向上的浮动元素, 左浮动会找左浮动, 右浮动会找右浮动
  1. <style>
  2. .box1{
  3. float: left;
  4. width: 50px;
  5. height: 50px;
  6. background-color: red;
  7. }
  8. .box2{
  9. float: right;
  10. width: 100px;
  11. height: 100px;
  12. background-color: pink;
  13. }
  14. .box3{
  15. float: left;
  16. width: 150px;
  17. height: 150px;
  18. background-color: yellow;
  19. }
  20. .box4{
  21. float: right;
  22. width: 200px;
  23. height: 200px;
  24. background-color: tomato;
  25. }
  26. </style>

  • 浮动元素浮动之后的位置, 由浮动元素浮动之前在标准流中的位置来确定
  1. <style>
  2. .box1{
  3. float: left;
  4. width: 50px;
  5. height: 50px;
  6. background-color: red;
  7. }
  8. .box2{
  9. width: 100px;
  10. height: 100px;
  11. background-color: pink;
  12. }
  13. .box3{
  14. float: left;
  15. width: 150px;
  16. height: 150px;
  17. background-color: yellow;
  18. }
  19. .box4{
  20. float: left;
  21. width: 200px;
  22. height: 200px;
  23. background-color: tomato;
  24. }
  25. </style>

  3、动元素贴靠现象

  • 什么是浮动元素贴靠现象?
    • 如果父元素的宽度能够显示所有浮动元素, 那么浮动的元素会并排显

    • 如果父元素的宽度不能显示所有浮动元素, 那么会从最后一个元开始往前贴靠

    • 如果贴靠了前面所有浮动元素之后都不能显示, 最终会贴靠到父元素的左边或者右边

  4、浮动元素字围现象

  • 什么是浮动元素字围现象?

    • 浮动元素不会挡住没有浮动元素中的文字, 没有浮动的文字会自动给浮动的元素让位置,这个就是浮动元素字围现象
  1. div{
  2. float: left;
  3. width: 100px;
  4. height: 100px;
  5. /*background-color: red;*/
  6. border: 1px solid #000;
  7. }
  8. p{
  9. width: 500px;
  10. height: 500px;
  11. background-color: yellow;
  12. }
  • 应用场景

    • 图文混排

css浮动布局的更多相关文章

  1. CSS浮动布局与菜单栏设计

    公司周六停电,终于可以双休了.用周五空余时间再夯实一下css基础,<CSS权威指南>概念性的内容看起来容易犯困,不如实践来得快,动手操作吧. 一.浮动布局 浮动存在问题:浮动使元素脱离文档 ...

  2. css浮动布局,浮动原理,清除(闭合)浮动方法

    css浮动 1.什么是浮动:在我们布局的时用到的一种技术,能够方便我们进行布局,通过让元素浮动,我们可以使元素在水平上左右移动,再通过margin属性调整位置 2.浮动的原理:使当前元素脱离普通流,相 ...

  3. Css - 浮动布局

    Css - 浮动布局 浮动布局 float 取值:left | right | none 利用float属性可设置元素的浮动,虽然浮动主要是应用于块元素,但行内元素其实也可以浮动,但行内元素本来就是一 ...

  4. CSS浮动布局带来的高度塌陷以及其解决办法

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  5. css浮动布局小技巧

    父元素如何围住浮动的子元素的三种办法: 一.为父元素应用overflow:hidden. overflow真正用途是防止包含元素被大的内容撑开,设定了宽度之后,包含元素将超过容器的内容减掉:而它还有另 ...

  6. css 浮动布局,清除浮动

    浮动的特性: (1)浮动元素有左浮动(float:left)和右浮动(float:right)两种 (2)浮动的元素会向左或向右浮动,碰到父元素边界.其他元素才停下来 (3)相邻浮动的块元素可以并在一 ...

  7. div css float布局用法

    float的应用与用法 想要知道float的用法,首先你要知道float在网页中的用处. 浮动的目的就是为了使得设置的对象脱离标准文档流. 什么是标准文档流? 网页在解析的时候,遵循于从上向下,从左向 ...

  8. 前端开发:css基础知识之盒模型以及浮动布局。

    前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西?  为什么这个浮动没有效果?  这个问题楼主已经回答了n遍.今天则是把 ...

  9. html/css 盒子布局 Margin 、Padding 、border 以及 清除浮动的知识 (学习HTML过程中的小记录)

    html/css  盒子布局 Margin .Padding .border 以及 清除浮动的知识 (学习HTML过程中的小记录) 作者:王可利(Star·星星) width     是"宽 ...

随机推荐

  1. mybatis系列笔记(4)---输入输出映射

    输入输出映射 通过parameterType制定输入参数类型 类型可以是简单类型(int String)也可以是POJO本身 或者包装类 1输入映射 关于输入简单类型和pojo本身的我就不写了,因为比 ...

  2. Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势

    原创文章,同步首发自作者个人博客转载请务必在文章开头处注明出处. 摘要 本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitio ...

  3. 「征文」在 cordova 中使用极光统计服务

    写在前面:年前的时候,极光社区组织了一场征文活动 ,收到不少好的文章.现在打算和大家一起分享一下这些优秀的作品 :) 作者:Wilhan - 极光 原文:在 cordova 中使用极光统计服务 正文 ...

  4. Java中byte与16进制字符串的互换原理

    我们都知道Java中的byte是由8个bit组成的,而16进制即16中状态,它是由4个bit来表示的,因为24=16.所以我们可以把一个byte转换成两个用16进制字符,即把高4位和低4位转换成相应的 ...

  5. Gradle之恋-任务2

    由于任务作为Gradle的核心功能模块,多花点精力是值得的,本文继上一篇主要涉及到:任务的执行顺序.为任务添加组和描述.跳过任务.扩展任务属性.定义默认任务. 任务顺序 如果构建(build)不能在清 ...

  6. js提交表单错误:document.form.submit() is not a function

    今天在写JS时,遇上这么个错误:"document.form.submit() is not a function",经过一番搜索,最终找到了修复方法. 这个错误一般是由于表单&l ...

  7. RabbitMQ-从基础到实战(5)— 消息的交换(下)

    转载请注明出处 0.目录 RabbitMQ-从基础到实战(1)- Hello RabbitMQ RabbitMQ-从基础到实战(2)- 防止消息丢失 RabbitMQ-从基础到实战(3)- 消息的交换 ...

  8. oracle 11g centos6 安装

    选型:32位的内存是个瓶颈,已经是64位的时代了.使用64位的CentOS6 和 64位的Oracle 11g R2在虚拟机器安装,采用hostonly方式设置网络注意:能上网的网卡要设置一下ICS( ...

  9. 如何在RecyclerView上面实现"拖放"和"滑动删除"-1

    Android上面有许多的教程, 库和示例, 在RecyclerView上面实现"拖放"和"滑动删除"功能. 尽管有更新, 更好的方法可用, 但是大多数人依然使 ...

  10. windows phone 8.1开发:(消息弹出框)强大的ContentDialog

    原文出自:http://www.bcmeng.com/contentdialog/ 在应用开发中我们必不可少的会使用到消息框,windows phone8中的messagebox在windows ph ...