CSS清浮动

作者: ferrint | 来源:发表于2017-03-02 20:08 被阅读17次

    关键词:清浮动

    原因
    浮动是因为使用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*/ 
    

    相关文章

      网友评论

        本文标题:CSS清浮动

        本文链接:https://www.haomeiwen.com/subject/nqpkgttx.html