问:

thml前面装图片的盒子和装列表的盒子都浮动了,为什么后面的装表单元素的盒子没有加浮动不占位到最前面?

答:
在前面有浮动的盒子后面,为了让后续的非浮动盒子不被浮动盒子占位,需要清除浮动。有两种常用的清除浮动方法:
1. 在浮动盒子后面设置一个空的div,给该div设置clear:both,清除前面元素的浮动,使该div成为下一行块级元素的起点。
2. 在浮动盒子的父级元素上设置overflow:hidden或overflow:auto,触发BFC,从而清除内部浮动,使下一行块级盒子正常展示。
在这个例子中,装图片和列表的盒子设置了浮动,为什么后面装表单元素的盒子没有加浮动却没有被占位?可能的原因有:
1. 后面的盒子是一个块级元素,默认独占一行,不会被前面浮动的 inline 或 float 元素影响。
2. 在浮动盒子和非浮动盒子中间的父级元素上设置了overflow,触发了BFC,清除了浮动,使非浮动盒子正常展示。
3. 在浮动盒子后面设置了一个clear:both的空div,清除浮动,使非浮动盒子不受影响。
4. 非浮动盒子本身设置了clear:both, thus清除前面的浮动,不被浮动盒子占位。
5. 可能页面的元素结构和CSS规则较复杂,通过其他规则实现了清除浮动,使未浮动盒子 like 预期那样展示,这需要查看具体的HTML和CSS代码才能分析清楚。
所以,总结来说,要使非浮动盒子不被前面浮动的盒子占位,关键是要在两个盒子之间清除浮动,最常用的方法是触发父元素BFC和使用clear both。需要查看具体代码才能判断为什么后面盒子没有被浮动盒子影响的准确原因。