文章目录

  • CSS之float和clear
  • 一、Float属性
    • 高度坍塌
      • 解决办法
        • 方法一:
        • 方法二:
        • 方法三:
    • 字围现象
  • 二、Clear属性

CSS之float和clear

盒子布局是现在较为流行的网页布局方式,最近的几道经典面试题都与float及clear有关。“float是魔鬼,会影响其他相邻元素;但是clear是小白,其智慧影响自身,不会对其他相邻元素造成影响”——某位大牛


一、Float属性

float就是浮动,让元素脱离文档流,让元素漂浮起来,和普通的文档流不在同一个层面上。float是将元素左右移动而不能上下移动

高度坍塌

谈到float就不得不谈到高度坍塌,那么什么是高度坍塌呢?
上面我们讲到float是让元素脱离文档流,让其不处于普通的文档流,那这必然会引起没有内容将父元素撑起来,使其高度->0,就会造成父元素高度坍塌的情况。

<style>.father {border: 2px solid black;}.brother {width: 200px;height: 200px;background-color: green;}.first {width: 100px;height: 100px;background-color: pink;float: left;}.second {width: 100px;height: 100px;background-color: red;float: left;}.third {width: 100px;height: 100px;background-color: blue;float: left;}</style>
<body><div class="father"><div class="first">元素1</div><div class="second">元素2</div><div class="third">元素3</div><!-- <div class="clear"></div> --></div><div class="brother">father的兄弟元素</div>
</body>


这就是所谓的高度坍塌,元素1,元素2,元素3都设置为了左浮动,导致父元素的上下边框贴在了一起,同时也遮住了兄弟元素的一部分。

解决办法

方法一:

给父元素添加overflow: hidden (建议)

 .father {border: 2px solid black;/* 清除浮动的常用方法 */overflow: hidden; }
方法二:

通过父元素的伪类选择器

.father::after {/* 伪对象选择器结合content使用,给选中元素添加内容 */content: '';display: block;clear: both;}
方法三:

在被影响元素的后面添加一个空元素(不建议使用,给文档添加了无意义的元素结构)

 .clear {clear: both;}

问题解决:

字围现象

在上面的代码中我们发现父元素的高度坍塌会影响到其兄弟元素,遮住了一部分

虽然遮住了一部分的兄弟元素,但是文字却没有遮住,而这种现象就是float的字围现象。

讲完了float,我们再来看看clear


二、Clear属性

clear就是清除浮动,清除当前元素左右的浮动对象(不是将浮动对象删除),更具体一点就是当前元素的边不能和前面的浮动元素相邻
这样的布局就需要用到clear属性,当我们给元素1设置float:left时,元素2会贴到元素1后面。所以我们需要清除元素1对元素2产生的影响,给元素2添加一个clear:both或clear:left,这样元素2就会到下一行去。


CSS之float和clear相关推荐

  1. 用CSS的float和clear创建三栏液态布局的方法(转载)

    三栏布局是目前最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容.基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度.   ...

  2. css 中 float 和 clear 的作用

    相当于原来的 align 的作用,但能力要比 align 强的多.一旦发出float:left或float:right命令,被我浮动的对像就会向左或向右移动直到遇到边框( border) .填充( p ...

  3. 用CSS的float属性创建三栏布局网页的方法

    三栏布局是最常见的网页布局,主要页内容放在中间一栏,边上的两栏放置导航链接之类的内容.基本布局一般是标题之下放置三栏,三栏占据整个页面的宽度,最后在页的底端放置页脚,页脚也占据整个页面宽度.本文介绍一 ...

  4. 经验分享:CSS浮动(float,clear)通俗讲解

    很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇通俗的教程. 前些天小菜终于搞懂了浮动的基本原理,迫不及待的分享给大家. 写在前面的话: 由于CSS内容比较多 ...

  5. 关于CSS浮动(float,clear)的通俗讲解(经验分享)

    很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇通俗的教程. 前些天小菜终于搞懂了浮动的基本原理,迫不及待的分享给大家. 写在前面的话: 由于CSS内容比较多 ...

  6. 杨元:CSS浮动(float,clear)通俗讲解

    zt http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html 很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能 ...

  7. 【转贴】没有div没有float没有clear没有hack的超强CSS布局

    [转贴]没有div没有float没有clear没有hack的超强CSS布局 原贴地址:http://parandroid.com/no-float-css-layout/ CSS + XHTML 有多 ...

  8. CSS浮动(float,clear)通俗讲解- 杨元- 博客园

     学习CSS布局 主页目录 inline-block 你可以创建很多网格来铺满浏览器.在过去很长的一段时间内使用 float 是一种选择,但是使用 inline-block 会更简单.让我们看下使用这 ...

  9. (转) 杨元:CSS浮动(float,clear)通俗讲解

    http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html 很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差, ...

最新文章

  1. wcf系列学习5天速成——第四天 wcf之分布式架构(转载)
  2. win10设置默认打开方式
  3. 点到点链路上的ospf
  4. ABAP正则表达式 vs SPLIT INTO
  5. dubbo的invoke命令_dubbo 调试服务telnet命令
  6. 20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结
  7. linux3.3内核去哪下载,Linux Kernel下载|Linux Kernel v3.18.3 稳定版 - 121下载站
  8. Win32项目生成的程序exe图标显示异常的问题
  9. OpenSSL密码库算法笔记——第6.1章 密钥
  10. mysql数据表删了怎么恢复_mysql数据库数据删除怎么恢复
  11. java中的类图_JAVA类图
  12. app端-留存分析-周留存率报表开发
  13. word方框中打√符号的方法
  14. 医院管理系统(Java+SSM+MySQL开发的医院科室管理系统)
  15. Apsara Clouder基础技能认证-阿里巴巴编程规范考试真题
  16. 全面理解Python迭代器和生成器
  17. 语言大数据起航,大数据量级加码
  18. python浮点数多少位_python 浮点数保留几位小数
  19. arccotx图像在matlab,反三角函数图像与性质是什么?
  20. python中“_“用法

热门文章

  1. 陶瓷基覆铜板性能要求与标准
  2. IDEA的使用2:最重要的步骤
  3. 1-100猜数字游戏
  4. 刚离开苹果,GAN 之父已找好下家:再次重返谷歌,继续在家办公
  5. SQL语法之CONSTRAINT约束操作
  6. 大数据平台的分类与选型指南
  7. Tomcat应用服务器被黑客 肉鸡攻击 记录
  8. MTK6260资料和问题帖集锦
  9. What is activeX?
  10. 哪些专业可以报考二建?2021二建报名条件专业详情对照表来了