浮动带来的问题
html代码
<div class="topDiv">
<div class="floatDiv">①floatDiv</div>
<div class="Second">②textDiv</div>
</div>
<div class="bottomDiv">③bottomDiv</div>
css代码
.topDiv {
width: 500px;
border: 1px solid black;
}
.floatDiv {
width: 100px;
height: 100px;
border: 1px solid red;
color: red;
margin: 4px;
float: left;
}
.Second {
color: orange;
border: 1px solid orange;
}
.bottomDiv {
width: 500px;
height: 100px;
margin: 5px 0;
border: 1px solid green;
}
1.文字围绕浮动元素排版,但我们可能希望文字(.textDiv)排列在浮动元素下方,或 者,我们并不希望.textDiv两边有浮动元素存在。
2.浮动元素排版超出了其父级元素(.topDiv),父元素的高度出现了塌缩,若没有文字高度的支撑,不考虑边框,父级元素高度会塌缩成零。
1.利用clear
clear:left;
clear后的效果
2.父元素结束标签之前插入清除浮动的块级元素
var div = document.createElement('div')
div.style.clear = 'both'
document.getElementsByClassName('topDiv')[0].appendChild(div)
插入后的效果
3利用伪类
写一个clearfix伪类,清除浮动
<div class="topDiv clearfix">
<div class="floatDiv">①floatDiv</div>
<div class="Second">②Second</div>
</div>
<div class="bottomDiv">③bottomDiv</div>
.clearfix:after {
content: '.';
height: 0;
display: block;
clear: both;
}
得到的效果
4.利用overflow清除浮动
利用overflow清除浮动
.topDiv {
width: 500px;
border: 1px solid black;
clear: left;
overflow: auto;
}
成功解决浮动问题