float问题?

float问题?

 .one{background-color: blue;width:100px;height: 100px;float: left;}

.two{background-color: green;width:100px;height: 100px;float: left;}

        

.three{background-color: red;width:100px;height: 100px;float:left;}

 div.aaa{clear:both;}

为什么在每一个div后面清除浮动三个div是垂直排列,而在最后class=“aaa”的div里清除浮动,三个div是水平排列?


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好同学 , 是说的每一个浮动元素后面都有一个空div ,并设置清除浮动吗 ? 如下

http://img1.sycdn.imooc.com//climg/5c766cb20001552205020171.jpg

如上给每一个元素后面加清除浮动  ,那么它清除的是上一个浮动元素对自己的影响 ,

http://img1.sycdn.imooc.com//climg/5c766d570001fd6208830820.jpg

而把前面的两个div.aa去掉 , 如下

http://img1.sycdn.imooc.com//climg/5c766d6e0001710205770213.jpg

几个元素并不受清除浮动的影响 , 所以会排列在一起 , 最后一个aa是帮助它后面的盒子清除上一个浮动元素带来的影响 . 例如你直接给一个浮动元素加清除浮动的属性 .那么清除的就是上一个元素对自己的影响 . 元素就不会和上一个浮动元素在一起浮动了哦

祝学习愉快 ,望采纳 . 

好帮手慕夭夭 2019-02-27 18:00:06

你好同学 , 请把自己练习的完整代码上传 , 以便老师针对代码准确高效的帮助你分析问题 . 

祝学习愉快 !

  • 提问者 慕田峪5398473 #1
    <!DOCTYPE html> <html lang="zh-en"> <head> <meta charset="UTF-8"> <title>列表</title> <style type="text/css"> div.contain{border: 1px solid red; width:500px;} .one{background-color: blue; width: 100px; height: 100px; float: left;/*clear:left;*/} .two{background-color: green; width: 100px; height: 100px; float: left;/*clear:left;*/} .three{background-color: red; width: 100px; height: 100px; float: left;/*clear:left;*/} div.aaa{clear: both;} </style> </head> <body> <div class="contain"> <div class="one">11111</div> <div class="two">22222</div> <div class="three">33333</div> <div class="aaa"></div> </div> </body> </html> 是这样的,如果在所有浮动元素后面的空div中清除浮动,显示一排,如果在每个浮动div中分别清除浮动,还是垂直排列,为什么不一样呢?
    2019-02-27 18:32:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师