float及清除

元素浮动 脱离文档流(不会对其他元素的布局造成影响)
但不脱离文本流 float本身就是做图文混排文字环绕效果的
对自身的影响:
-> 形成"块"(BFC) 可有自己的布局 如p1,若没有float 给文字设置宽高就是无效的
-> 位置尽量靠上
-> 位置尽量靠左float:left(右float:right) 宽度不够会往下掉
对兄弟元素的影响:
-> 上面贴非float元素
-> 旁边贴float元素
-> 不影响其他块级元素的位置
-> 影响其他块级元素的文本
对父级元素的影响:
-> 从父级布局上"消失"
-> 高度塌陷 解决这个问题 1.设置父元素变成BFC
2.其他非float元素超出float的区域 使用::after
设置content:'' height:0 display:block visibility: hidden clear:both
3.在父元素的最后加一个空的div<div style="clear:both"></div>
4.父级元素手动定义高度(高度固定时使用)
-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动</title>
    <style>
        .container{
            background: red;
            width: 400px;
            /*margin: 20px;*/
        }
        .p1{
            background: #6f42c1;
            float: left;
            width: 200px;
            height: 50px;
        }
        /*经典清除浮动的方式*/
        .container2::after{
            content: '';
            /*after默认inline 所以要设置block*/
            display: block;
            clear: both; /*保证这个元素的左右两边没有浮动元素*/
            /*因为浮动元素是靠上靠左的 所以加的元素只能在下方*/
            height: 0;
            visibility: hidden;
        }
    </style>
</head>
<body>
   
    <div class="container">
        <span class="p1">
            float
        </span>
        <span class="p2">
            好长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长的字
        </span>
    </div>
    <div class="container container2">
        <span>
            几个几个几个的字
        </span>
        <span class="p1">
            float
        </span>
        <span class="p1">
            float
        </span>
    </div>
    <div class="container" style="height: 200px; background: blue"></div>
</body>
</html>

如何清除浮动(浮动的元素不会占用父元素的布局空间,可能会对其他元素产生影响 比如父级塌陷等)
-> 让盒子负责自己的布局
-> 父元素overflow:hidden(auto)
-> ::after{clear:both}(页面最后空白元素)

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

推荐阅读更多精彩内容

  • 这篇文章极好,以至于让我受益良多,就一字没有改动的转发过来一丝冰凉老师的文章 需要注意的是,display:tab...
    新晋小牛牛阅读 1,073评论 0 2
  • 浮动定位 BFC 边距合并 浮动元素 div的顺序是HTML代码中div的顺序决定的。 浮动可以理解为让某个div...
    nianxiaoge阅读 734评论 0 0
  • 浮动,从诞生那天起,它就是个特别的属性——既为网页布局带来新的方法,却又随之产生一系列的问题。当然,随着时间的推移...
    郝特么冷阅读 860评论 0 6
  • 浮动的定义: 浮动元素脱离文档流,按照指定方向移动,遇到父级边界或者相邻的浮动元素停了下来 浮动的特征: 浮动元素...
    机智小铛铛i阅读 666评论 0 0
  • 一个人不懂得原谅别人,也不要期待别人去原谅自己!
    阳光雨露_f5bb阅读 100评论 0 1