float浮动引起的问题:
-
父元素的高度坍塌,即变为0;
如果父元素里所有的元素都浮动,浮动之后从父元素里面“跑”了出去,相当于父元素里面没有了元素,高度没有元素“撑起来”,所以就会造成父元素的高度变为0的情况。 - 影响内联元素的位置;
假设父元素里有浮动元素和内联元素,假设浮动元素在内联元素的右边且元素往左浮动,内联元素会被“挤”到浮动元素的右边,同理,如果浮动元素在内联元素前面且浮动元素往右浮动,也会将内联元素“挤”到左边,影响内联元素的位置。这种情况就要控制浮动元素浮动的位置或者控制内联元素的位置。
解决父元素高度为0的方法:
- 给父元素设置固定高度,使父元素有自己的内容。
- 给父元素设置overflow:hidden;
- 在父元素的内部,浮动元素的最后,设置一个块级元素,并对其设置属性:clear:both;
- 对父元素添加after伪元素,并对其设置属性:content:"";
display:block;
clear:both;
以上仅为本人的一点理解,不足之处欢迎指正!