1.浮动元素会脱离html文本流,相对于从标签那些里脱去,会改变html的样子
2.例https://www.w3school.com.cn/tiy/t.asp?f=css_layout_clear
3.在这里插入代码片
<!DOCTYPE html> <html> <head> <style> .div1 { float: left; width: 100px; height: 50px; margin: 10px; border: 3px solid #73AD21; } .div2 { border: 1px solid red; clear:left;//通过这个的删除来查看一下改变 如果这个元素被删掉,那么div1会提升到上面 contain的大小为div的大小 如果加上去,会计算出这个浮动的位置,然后让div2在div1的下面显示,保证了div2的左边显示出来是被"clear"的效果的,然后这样做的本质其实是contain的高度变大,相当于在div2的上面多了一层元素,顶替了原来这个div1的大小位置 } .contain{ background-color:red; } .div3 { float: left; width: 100px; height: 50px; margin: 10px; border: 3px solid #73AD21; } .div4 { border: 1px solid red; clear: left; } </style> </head> <body> <h1>不使用 clear</h1> <div class="contain"> <div class="div1">div1</div> <div class="div2">div2 - 请注意,在 HTML 代码中 div2 在 div1 之后。不过,由于 div1 向左浮动,div2 中的文本会流动到 div1 周围。</div> </div> <br><br> <h1>使用 clear</h1> <div class="div3">div3</div> <div class="div4">div4 - 在此处,clear: left; 把 div4 移动到浮动的 div3 下方。值 "left" 会清除向左浮动的元素。您也可以清除 "right" 和 "both"。</div> </body> </html>