疑问: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 星