刚写代码的时候,突然有个问题,float加在父级元素上和加在子级元素上有什么区别,还有浮动清除的一些问题
1 | <!DOCTYPE html><html lang= "en" ><head> <meta charset= "UTF-8" > <title></title> <style> .main{ width: 1000px; background-color: bisque; overflow: hidden; } .fl{ float: left; } .wh200{ width: 200px; height: 200px; margin-left: 20px; background-color: aqua; } .clear{ clear: both; } .main2{ width: 1000px; background-color: blue; height: 400px; } </style></head><body><div class = "main" > <div class = "fl wh200" ></div> <div class = "fl wh200" ></div> <div class = "fl wh200" ></div></div><div class = "main2" ></div></body></html>
|
登入後複製
清楚浮动两种方式
1. 父级加overflow:hidden ;
2. 最后一个子级加clear:both
这里的浮动是加在子级元素上的,并且通过overflow: hidden清楚浮动;如果不加浮动清除,那么main1这个父级div是没有高度的,这会导致main2这个div浮上来,如下效果
还有不存在什么父级元素加了浮动,子级元素也浮动,float:left这个属性加给谁,谁就参与浮动。
总结:
套路框架:第一层:页面整体框架overflow:hidden清除浮动;第二层:就是第一层里面的一些元素,比如header里面的logo,search这些,定义高度就行。
1 | <div style= "width: 1000px;overflow: hidden" > <div style= "float: left;width: 330px" > <div style= "width: 200px;height: 50px" ></div> <div style= "width: 130px;height: 50px;" ></div> </div> <div style= "float: left;width: 330px" ></div> <div style= "float: left;width: 330px" ></div></div><div style= "width: 1000px;overflow: hidden" > <div style= "float: left;width: 330px" ></div> <div style= "float: left;width: 330px" ></div> <div style= "float: left;width: 330px" ></div></div>
|
登入後複製