标签:
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>清除浮动</title> 5 <meta charset="utf-8"> 6 <style> 7 body { margin:0; padding:0; font:normal 12px/1.5em "Microsoft Yahei", Verdana, Arial, Helvetica, sans-serif;} 8 9 /*.cf { *zoom: 1;} 10 .cf:after{ content: " "; clear: both; display: table;}*/ 11 .box { position: absolute; border: 10px solid #333 } 12 .redBlock { width:400px; height: 400px; float: left; background-color: red} 13 .blueBlock { width:400px; height: 400px; float: left; background-color: blue} 14 .greenBlock { width:1000px; height: 200px; background-color: green} 15 16 /* 17 清除浮动(准确的说是清除浮动影响)的一些方法: 18 19 1、给浮动的父级元素设置高度;// 这个高度值是可以包裹浮动元素的高度; 20 2、给父级元素添加overflow:hidden属性; 21 3、使用clear:both ,在浮动元素的尾部添加一个div,然后给其设置clear:both,不推荐 22 4、使用after伪类清除浮动;最佳实践代码: 23 .cf { *zoom: 1;} 24 .cf:before, 25 .cf:after{ content: " "; clear: both; display: table;} 26 27 其他关于浮动的问题: 28 5、浮动产生的影响会使下一个元素产生位置上的偏移,但是其包裹的内容还是会展现出来, 29 所以理解为:浮动并不是脱离文档流,浮动元素同时处于流内和流外,不同于定位的那种; 30 也就是说,背景会滑动到浮动元素之下,而内容不会;(见例子,浮动的影响) 31 32 // 5.25号更新理解: 其实这里的内容会展现出来的原因是因为,浮动的本质是让字符环绕, 33 (这里的字符包括 还有空格符) 34 在设计之初的时候的时候并不是用于布局。 35 36 6、父级添加了position:absolute属性,可以包裹住浮动元素,但是却不能消除浮动元素产生的影响,见本例;但是这里因为设置了absolute值,脱离了文档流,所以绿色盒子里面的内容就被遮住了,原来只有浮动是遮不住的; 37 38 */ 39 </style> 40 </head> 41 42 <body> 43 <div class="box"> 44 <div class="redBlock">博客的左侧</div> 45 <!-- <div class="clear"></div> --> 46 <div class="blueBlock">博客的右侧</div> 47 </div> 48 <div class="greenBlock">博客的版权信息<div>内容内容容内容容内容容内容容内容</div></div> 49 50 51 </body> 52 </html>
标签:
原文地址:http://www.cnblogs.com/zhangxg/p/4528973.html