一、浮动布局
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .left{float: left; width: 200px; height: 200px; background: paleturquoise;} .right{float: right; width: 200px; height: 200px; background: palegoldenrod;} </style> </head> <body> <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> </body> </html>
浮动对父级元素的影响:造成父级元素高度折叠为0
实例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ background: #DDDDDD;} .left{float: left; width: 200px; height: 200px; background: paleturquoise;} .right{float: right; width: 200px; height: 200px; background: palegoldenrod;} </style> </head> <body> <div class="box"> <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> </div> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
解决方法:
实例
!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ height:200px; background: #DDDDDD; margin-top: 20px;} .left{float: left; width: 200px; height: 200px; background: paleturquoise;} .right{float: right; width: 200px; height: 200px; background: palegoldenrod;} .box2{overflow: hidden; background: palevioletred; margin-top: 20px;} .clearfix{clear: both;} .box3{background: greenyellow; margin-top: 20px;} .box4{float: left; width: 100%; background: darkcyan; margin-top: 20px;} .box5{background: #009F95; margin-top: 20px;} .clearfixs:after{content:"."; display:block; height:0; clear:left; visibility:hidden;} </style> </head> <body> <div class="box"> 1:为父级设置高度 <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> </div> <div class="box2"> 2:为父级设置 overflow: hidden; 样式 <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> </div> <div class="box3"> 3:为父级中插入样式为 clear:both 的空标签 <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> <div class="clearfix"></div> </div> <div style="overflow: hidden;"> <div class="box4"> 4:为父级 也设置浮动元素 <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> </div> </div> <div class="box5 clearfixs"> 5:使用CSS的:after伪元素 <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> </div> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
二、三列布局
实例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ height:200px; background: #DDDDDD;overflow: hidden;} .left{float: left; width: 200px; height: 200px; background: paleturquoise;} .right{float: right; width: 200px; height: 200px; background: palegoldenrod;} .box2{position: relative; height: 200px; background: #DDDDDD; margin-top: 20px; text-align: center;} .aLeft{position: absolute; left: 0; top: 0; bottom: 0; width: 200px; background: paleturquoise;} .aRight{position: absolute; right: 0; top: 0; bottom: 0; width: 200px; background: palegoldenrod;} .box3{display:flex; height: 200px; background: #DDDDDD; margin-top: 20px; text-align: center;} .fLeft{width: 200px; height: 200px; background: paleturquoise;} .fRight{width: 200px; height: 200px; background: palegoldenrod;} .fMain{flex: 1;} </style> </head> <body> <div class="box"> 1,通过浮动布局 <div class="left">float:left 左浮动</div> <div class="right">float:right 右浮动</div> </div> <div class="box2"> 2,通过position: relative 定位布局 <div class="aLeft">position: absolute;绝对定位left:0</div> <div class="aRight">position: absolute;绝对定位right:0</div> </div> <div class="box3"> <div class="fLeft">左边固定</div> <div class="fMain">3,通过display:flex布局</div> <div class="fRight">右边固定</div> </div> </body> </html>
点击 "运行实例" 按钮查看在线实例
总结:float 和 position 都会使元素脱离文档流,就是脱离了自身原本的位置,按最近的同样拥有float或position的父级元素重新定位自身的位置。