zoukankan      html  css  js  c++  java
  • html视觉格式化模型之浮动

    浮动的应用场景,浮动起初诞生的时候呢,是为了解决文字环绕图片的效果,到现在呢,浮动多数用于横向的排列,虽然说css3和其他能提供更好的排列方法,但是兼容性并没有浮动的好。所以现在很多大厂用的横向排列方法,还是用的浮动比较多。

      常规流排列:

       浮动排列:

     看看淘宝页面的横向排列,用的也是浮动

    浮动的基本特点。

      float:none(默认值)

      常用的属性值有:

          left:左浮动,元素在包含块(父元素的内容区)的最上边靠左边开始排列

          right:右浮动,元素在包含块的最上边右边开始排列

    注意:当一个元素进行浮动后,元素必定为块盒。display属性变为:block。

     浮动盒子的尺寸问题

      1、宽度为auto时,并不会像常规流一样撑满内容区。而是,自动适应内容的宽度,也就是内容有多宽,宽度就有多少

      2、高度为auto时,适应内容的高度,内容占多少,就有多高

      3、margin为auto时,(常规流中margin:0 auto;为居中效果),在浮动里面,auto时,值为0,并不会填满内容区

      4、padding、margin、border、width等值,设置为百分比的时候,会根据包含块的宽度(width)进行取值。记住是width,别理所当然的觉得,浮动元素的padding-top是取的包含块的height。当然,浮动元素的height是取的包含块的height。

     盒子的排列

      浮动 盒子在包含块中排列时,遇到常规流的块盒,会避开,给他让位置

      常规流的块盒在浮动盒子的包含块里面排列,会直接无视浮动盒子的位置

      行盒在排列时,会避开浮动盒子

      margin上下合并的规则并不会在浮动盒子里面发生

     最后一点,文字的话,他始终都会避开浮动盒子,文字如果没有在行盒中,浏览器会自动生成一个行盒包裹文字,该行盒叫做匿名行盒。该盒子看不见,但是块盒还是块盒,只是文字的排列方式变成了行盒的样子

     浮动的缺点 

      会产生高度坍塌。

     解决办法:

     

    清除浮动:clear:none(默认值)

               left:清除左浮动,该元素必须出现在所有左浮动盒子的后面。
               right:清除右浮动,该元素必须出现在所有右浮动盒子的后面。
               both:清除左右浮动,该元素必须出现在所有浮动盒子的后面。

  • 相关阅读:
    python基础(str,list,tuple)
    MySQL数据类型概念
    Ubuntu安装sublime
    Ubuntu安装pycharm
    ubuntu安装mysql
    微信小程序注册开发流程
    新开篇
    被玩坏了的题——马的遍历
    一道数学恶心题——小凯的疑惑
    搜索基础题:八皇后
  • 原文地址:https://www.cnblogs.com/yanggeng/p/14562436.html
Copyright © 2011-2022 走看看