美文网首页- [ CSS入门 ]
十九,浮动:float属性

十九,浮动:float属性

作者: 好多可乐 | 来源:发表于2020-12-23 15:56 被阅读0次

    float属性设置:
    1,left--元素向左浮动
    2,right--元素向右浮动
    3,none--默认值。元素不浮动。
    总结:
    给谁添加了float,就将谁脱标,后面的内容会顶上来显示。
    如果顶上去以后,脱标的内容没有改变位置,就会出现后者被前者(拖标内容)覆盖的情况。
    如果没有改变位置,就出现该在的地方。

    1,float的崩溃
    当父元素没有设置高度的情况下,将子元素设置为浮动(float)父一级的块级元素高度
    发生破坏(又称为破坏,崩塌)
    div-->在没有设置高度和宽度的情况下:
    高度为:div内内容的高度
    宽度:为父一级的宽度

    2,float的包裹性
    包裹性:当div设置浮动后 宽度会自适应其内容的宽度。
    块级元素默认宽度就是父级元素的宽度,div设置为float 产生包裹特性
    行级元素都会出现块级元素包裹多出(基准线)
    解决:
    1)将img转换为块级元素 vertical-align:bottom
    2)垂直对齐方式:底部对齐;行级元素转块级元素

    <html>
    <head>
       <style type="text/css">
        div{
            background-color: yellow;
            float: left;
        }
        img{
            vertical-align: bottom;
        }
       </style>
    </head>
    <body>
       <div>
        <img src="image/3.jpg"/>
       </div>
    </body>
    </html>
    

    3,使用float进行图文混排
    float的设计初衷-->实现图文混排(环绕方式),文字和矩形区域,能够进行环绕排列
    随着技术进入-->例如用于商品列表并排显示

    <html>
    <head>
       <style type="text/css">
        div{
            background-color: yellow;
            float: left;
        }
        img{
            vertical-align: bottom;
        }
        p{
            text-align: justify;
            line-height: 20px;
        }
       </style>
    </head>
    <body>
       <div>
        <img src="image/3.jpg"/>
       </div>
       <p>
        包裹性:当div设置浮动后 宽度会自适应其内容的宽度。
    块级元素默认宽度就是父级元素的宽度,div设置为float 产生包裹特性
    行级元素都会出现块级元素包裹多出(基准线)
    解决:
    1)将img转换为块级元素 vertical-align:botom
    2)垂直对齐方式:底部对齐;行级元素转块级元素  
       </p>
    </body>
    </html>
    
    <html>
    <head>
       <style type="text/css">
        div{
            background-color: white;
            float: left;
        }
        img{
            vertical-align: bottom;
            float: left;
        }
        p{
            text-align: justify;
            line-height: 20px;
        }
       </style>
    </head>
    <body>
       <div>
        <img src="image/3.jpg"/>
        <p>
        包裹性:当div设置浮动后 宽度会自适应其内容的宽度。
    块级元素默认宽度就是父级元素的宽度,div设置为float 产生包裹特性
    行级元素都会出现块级元素包裹多出(基准线)
    解决:
    1)将img转换为块级元素 vertical-align:botom
    2)垂直对齐方式:底部对齐;行级元素转块级元素  
       </p>
       </div>
       
    </body>
    </html>
    

    4,float清除浮动
    一,需要清除浮动的原因:
    1,为了父元素不会出现“高度崩塌”
    2,如果强制规定了外层容器的尺寸,则显得就不那么灵活了,高度就就不能自动适应了
    (以后的数据,大多都是从后台获取的,这样内容的多少和版本就会不一致)
    3,从某个元素开始我们不再需要浮动效果了。
    方法一:
    清除浮动代码-->clear: both(right and left);-->表示清除元素之前的浮动,如果本元素之后还有浮动,是不受这段清除浮动代码的影响的。
    clear: left-->清除左浮动
    clear:right-->清除右浮动
    方法二:
    额外添加一个清除浮动的div,防止清除div的代码

    clearDiv{clear: both;}

    上边距-->top: 10px; position: relative;(设置边距时注意定位)
    方法三:(目前一些大型网站流行的方法,当网站内容很多时,可以防止出现一个些意料外的问题)
    ::after-->伪元素

    clearDiv::after{

        content: "";-->冒号里为空,因为需要clearDiv中有点内容,但 
                                 不在浏览器中展示
         visibility: hidden;-->将内容进行隐藏(防止一些误操作导致 
                                          clearDiv中出现额外的内容而导致洁面变 
                                           形)
          height: 0px;-->将行高恢复到默认。
          display;  block;-->块状显示,将content 转换成跨级元素
          clear: both;
    

    }
    专门针对IE浏览器清除浮动的方法:

    clearDiv{ zoom: 1; }

    zoom-->ie浏览器专用的,作用-->使页面里的对象可以重新加载、重新计算。从而起到重新渲染的效果。
    可以非常有效的解决ie浏览器的一些bug、例如 外边距的重叠、浮动不能清除等。

    相关文章

      网友评论

        本文标题:十九,浮动:float属性

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