CSS清浮动

关键词:清浮动

原因
浮动是因为使用float:left或float:right,使元素脱离了文档流而产生的浮动。

影响

1、背景不能显示
由于浮动产生,如果对父级设置了(CSS background)背景颜色或背景图片,而父级不能被撑开,所以导致CSS背不能显示。

2、边框不能撑开
如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。

3、margin padding设置值不能正确显示
由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。

解决方法

1 . 父级div定义 height

2 . 结尾处加空div标签 clear:both
* .clearfloat{clear:both}

3 . 父级div定义 伪类:after 和 zoom

 /*清除浮动代码*/ 
.clearfloat:after{
      display:block;
      clear:both;
      content:"";
      visibility:hidden;
      height:0
} 
.clearfloat{zoom:1} 

4 . 父级div定义 overflow:hidden

原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度

*缺点:不能和position配合使用,因为超出的尺寸的会被隐藏。 *

5 . 父级div定义 overflow:auto

原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度

*缺点:内部宽高超过父级div时,会出现滚动条。 *

6.父级div 也一起浮动

毫无优点,仅作了解


完美清浮动方法

  .clear:before,.clearafter{
    content: ".";
    line-height: 0;
    display: table;
  }

  .clear:after { 
    overflow: hidden;
    clear: both; 
    visibility: hidden; 
  }/*for w3c*/ 
  
  .clear { 
  zoom:1; 
  }/*for IE*/ 
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,377评论 1赞 92
  • 1. 居中不定高div样式 参考:http://www.haorooms.com/post/css_div_juz...
    darr250阅读 5,269评论 0赞 7
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 1,133评论 0赞 2
  • 萌娃们第一天上学,都是在家想怎么样就怎么样,想什么时候睡觉就什么时候睡觉,第一次被强制性的要求吃过午饭统一睡觉,大...
    君诚梓阅读 187评论 0赞 1
  • 01 昨天在看《学会提问》,这本书很有名,也很烧脑,看得我直犯困。但是在介绍强批判性思维与弱批判性思维的差异时,作...
    乌素阅读 1,623评论 1赞 5

友情链接更多精彩内容