谈谈CSS的浮动问题_html/css_WEB-ITnose
程序员文章站
2022-04-13 14:05:02
...
浮动的工作原理
浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框则停留。
浮动元素可能引起的问题
1.父元素的高度无法被撑开,影响与父级元素同级的元素
2.与浮动元素同级的非浮动元素会跟随其后
3.若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面的显示结构
清除浮动有什么解决办法?
一般来说有三种办法。
1.使用空标签清除浮动
在所有浮动标签后面添加一个空标签并定义CSS属性 clear:both
对比图:div未被撑开
加个空标签就可以,弊端是增加了无语义标签
one
当然了,如果浮动元素的后边元素你不需要浮动,可以顺便给它加个clear:both ,这样也不错。
2.使用overflow
给包含浮动元素的父元素标签添加CSS属性,overflow:hidden or auto; zoom:1 ,其中zoom:1用于兼容IE6,目的是为了触发hasLayout
3.使用after伪对象清除浮动。
但该方法只适用于非IE浏览器,还要注意的是使用的时候要记得为需要清除浮动元素的伪对象设置height:0; 否则该对象会比实际高出若干像素。
one
4.就是给浮动元素的父元素也浮动起来,但这整体又浮动了所以不推荐~
5.还有一种就是直接给浮动的元素添加属性 display:table;
FF Chrome等支持,IE6/IE7测试显示不支持~ 所以还得触发hasLayout ,加上zoom:1 或者 display:inline-block 吧