float浮动元素出现错位或塌陷的原因及的解决方法
当N个元素浮动后,会导致错位的问题。一般给元素一个固定的height就没有这个现象。
但是当高度不一致时,就需要想别的办法来解决了:
1、给父元素定义font-size:0; 浮动子元素定义需要的font-size, 再定义display:inline-block;vertical-align:top;
ul{
margin:0;
padding:0;
list-style-type:none;
font-size:0;
}
ul li{
width:160px;
display:inline-block;
vertical-align:top;
font-size:12px;
}
2、给换行后的第一个li添加clear:left 如:
ul li{float:left;width:160px;}
.c{clear:left;}
<li>1</li>
<li>2</li>
<li>3</li>
<li class="c">4</li>
<li>5</li>
<li>6</li>
3、如果两个同级的元素发生了错位,就在两个元素之间添加一个空标签,比如:
<div class="clear"></div>
然后设置CSS属性:
.clear{
clear:both;
}
4、如果是父子元素,而只给子元素添加了float,而父元素没有加float的话,会发生元素塌陷,解决方法: (1)给父元素也加上相同的float就行。 (2)在父元素标签里面的最后一行加上上面那串代码。
如果是浮动引起的原因,这样子一般可以解决大多数问题。