疑问:clear清除浮动的影响
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>清除浮动</title> <meta charset="UTF-8"> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <style type="text/css"> body {font: 30px "微软雅黑";} #container { width: 500px; border: 2px solid #000; } #div1, #div2, #div3 { width: 100px; height: 100px; line-height: 100px; text-align: center; color: #FFF; } #div1 { background-color: blue; float: right; } #div2 { background-color: red; float: right; } #div3 { background-color: orange; float: right; } #div1, #div2, #div3 { clear: both; } </style> </head> <body> <div id="container"> <div id="div1">div 1</div> <div id="div2">div 2</div> <div id="div3">div 3</div> </div> </body> </html>
以上代码的效果如下图所示:
可以看出,3个子元素设置了clear:both;之后,父元素高度依然是坍塌的,并没有由3个div的高度撑开。
那是不是理解为:
clear清除的不是浮动,清除的是浮动的影响。清除浮动的影响后,3个div回归正常文档流,依次从上到下排列。但是,既然回归正常文档流,父元素的高度怎么还是坍塌的呢?不应该由3个div撑开吗?3个div为什么依然紧靠右侧呢?不应该紧靠左侧吗?
这清除效果跟预想的不一样啊?
3
收起
正在回答 回答被采纳积分+1
1回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星