css浮动

  • 为了不出 bug,用了浮动之后,一定要清除浮动。使用 class="clearfix"

  • float 的属性值

    1. none

      初始值,表明元素不进行浮动

    2. left

      表明元素浮动在其所在的块容器左侧

    3. right

      表明元素浮动在其所在的块容器右侧

    4. inline-start (这是一个实验性的API,尽量不要在生产环境中使用)

      表明元素必须浮动在其所在块容器的开始一侧,在ltr脚本中是左侧,在rtl脚本中是右侧。

    5. inline-end (这是一个实验性的API,尽量不要在生产环境中使用)

      表明元素必须浮动在其所在块容器的结束一侧,在ltr脚本中是右侧,在rtl脚本中是左侧。

    注意:不存在center 这个属性值, 浮动元素是浮动在块容器的 padding 以内的。

  • 浮动元素的定位

    当一个元素浮动之后,它会被移出正常的文档流,然后向左或者向右平移,一直平移直到碰到了所处的容器的边框,或者碰到另外一个浮动的元素

    • 脱离 nomal flow

      img{float:left;}

      1. 脱离了文档流,即使图片是块级元素的子元素,但是计算块级元素的高度时,它不会被计算在内。
      2. 如果是 nomal flow 加上图片,图片会撑开当前行的高度,文字与图片的 baseline 对齐,页面看上去不工整。 而浮动会产生图文环绕的效果。
    • 对元素 display 的影响

      1. 除了 display:flex /inline-flex /inline-table 之外,其他的元素的 display 都会变block, 而且手动修改 display ,还不能够覆盖。
    • 对文本元素的影响

      1. 文字环绕在其周围,图片在当前行往左浮动,四周的文字(内联元素)被挤到右边
    • 对块级元素的影响

      1. 浮动元素会浮动到块级元素的上一层,就好像块级元素看不见这些浮动元素,但是块级元素中的文本还是会环绕在图片周围。
    • 对浮动元素的影响

  • 清除浮动

    • 方法一:

      在图片下方增加一个空的 div 并将设置其 css 为:style="clear:left" (即这个 div 的左边不能有浮动,就是就将这个 div 移到了图片下方)

      .clearfix::after{
        content:'';
        display:block;
        clear:both;
      }
    

    上面的代码就是清除浮动的经典方法

    • 方法二:

      div.parent{
        overflow:hidden;
        height:auto;
      }
      
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,842评论 1 92
  • 1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 特征:浮动模型也是一种可视化格式模...
    clark124阅读 699评论 0 0
  • 一,浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动模型是一种可视化格式模型,浮动...
    DeeJay_Y阅读 919评论 0 4
  • 浮动元素的特征及影响 特征: 浮动模型也是一种可视化格式模型,浮动的框可以左右移动(根据float属性值而定),直...
    Joey的企鹅阅读 920评论 0 0
  • 文章版权归饥人谷_Lyndon以及饥人谷所有。 1. 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分...
    HungerLyndon阅读 2,416评论 4 10