浮动元素脱离了文档流,其父元素看不到它了,因而不会包围它。浮动会“扩散”到下一个清除浮动的元素处。这会引起不想要的页面布局效果。

  清除浮动的方法有三种:

    1、父元素overflow:hidden

    2、同时浮动父元素

    3、添加清除浮动元素。

  1、父元素overflow:hidden

    overflow:hidden的真正作用是防止元素被超大内容撑大。使用hidden后,元素保持其设定的高宽,超大的内容会被“剪切”掉,变为页面不可见部分。同时,overflow:hidden也能强迫父元素包围浮动子元素。

  2、同时浮动父元素

    浮动父元素后,父元素会紧紧包裹子元素(不管子元素是否浮动),这时父元素的高宽极有可能需要强制确定。由于父元素的浮动会导致父元素的后续元素也浮动,故需要在父元素的后续元素上清除浮动。

  3、添加清除浮动元素

    由于包含元素一定会包围非浮动的子元素,而且清除会让这个子元素位于(清除一侧)浮动元素的下方,因此包含元素一定会包含这个子元素——以及前面的浮动元素。——《CSS设计指南》

    父元素需要将非浮动元素包围起来,因此将非浮动元素做最后一个元素,同时父元素肯定将子元素包围起来。直接添加一个空白div清除浮动即可。

    不需要额外元素的写法:

 .clearfix:after {
content:".";
display:block;
height:;
visibility:hidden;
clear:both;
}

    这三种方法的使用要因地制宜。比如,不能在下拉菜单的顶级元素上应用overflow:hidden ,否则作为其子元素的下拉菜单就不会显示了。因为下拉菜单会显示在其父元素区域的外部,而这恰恰是 overflow:hidden 所要阻止的。再比如,不能对已经靠自动外边距居中的元素使用“浮动父元素”技术,否则它就不会再居中,而是根据浮动值浮动到左边或右边了。

    

最新文章

  1. Spring 4支持的Java 8新特性一览
  2. middleware中间件的概念
  3. 常用Meta整理
  4. hustoj1353 节点选择 树形dp
  5. 洛谷 P1012 拼数 Label:续命模拟QAQ
  6. centos lamp
  7. cocos2d-html5 sprite打印宽高都为0的问题
  8. HDU 2034 人见人爱A-B 分类: ACM 2015-06-23 23:42 9人阅读 评论(0) 收藏
  9. C# Chart 折线图 多条数据展示
  10. win7下不能收到窗口hook消息的问题
  11. Jmeter API Performance Test
  12. asp.net core系列 39 Web 应用Razor 介绍与详细示例
  13. windows环境搭建nginx
  14. C#异步编程の-------异步编程模型(APM)
  15. 深入浅出的webpack构建工具---HappyPack优化构建(九)
  16. 【java】浅谈while 和do-while
  17. BZOJ 3357--[Usaco2004]等差数列(STL&DP)
  18. Python 入门基础12 --函数基础5 匿名函数、内置函数
  19. 手把手图文教你eclipse下如何配置tomcat
  20. mySql数据库 C#使用guid

热门文章

  1. 转载:Source Insight查看ARM汇编源程序 && 高亮显示程序 && Source Insight打开project窗口出错
  2. android studio中文乱码的解决方法【转】
  3. 小波变换 C++ opencv 实现
  4. XMLHttpRequest2的进步之处
  5. win7 安装SQL Server 2005 开发版 图文教程
  6. 深入浅出Z-Stack 2006 OSAL多任务资源分配机制
  7. 广州麒麟网络工作室 qlgame eninge(anroid) opengles c++ matrix
  8. 安卓开发中,什么样的功能适合抽取成 Library?
  9. OpenIOC
  10. Multi-bit per cell storage