疑问:clear清除浮动的影响
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <!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积分~
来为老师/同学的回答评分吧