• CSS——浮动及清除浮动


    浮动

    • 浮动目的:最初是为了其他内容(如文本)“围绕”该图像,后来CSS允许浮动任何元素
    • 浮动产生bug的原因:当一个内层元素浮动时,如果没有关闭浮动,父元素就不会再包含这个浮动的内层元素了,因为此时浮动元素已经脱离了文档流,导致外层不能被撑开
    浮动和绝对定位的区别
    • 如下代码:

    html

        <div class="box">
            <div class="left"></div>
            <div class="right">
                我只是想测试一下哈哈哈哈哈哈哈哈哈
            </div>
        </div>     
    
    

    css

        .left{
             200px;
            height: 300px;
            background-color: red;
            position: absolute; //绝对定位  浮动则换成float:left
        }
        .right{
             500px;
            height: 400px;
            background-color: blue;
        }
    
    
    • 效果

    绝对定位

    浮动

    • 绝对定位:完全脱离文本流,并且相对于其包含块定位,之后的元素会彻底占据之前元素位置,文本也会
    • 浮动:文本环绕浮动元素

    浮动的影响

    • 背景不能显示,边框不能撑开,margin、padding不能正确显示,如下代码

    • 效果展示

    从上面效果可以看出,父级元素的背景颜色未被显示,并且父级元素高度塌陷(父元素不写高度时,子元素写了浮动后,父元素会发生高度塌陷),box的高度为0

    清除浮动(使用较多的方法)

    overflow
    • 在其父元素设置{overflow:hidden},就是在以上代码的box元素上加上这一行代码
    • 原理:因为这个属性相当于是让父级紧贴内容,即可紧贴其对象内内容
    clear:both
    • 在浮动元素下方添加空div,并给该元素写css样式{clear:both;}
      • 问题:增加了HTML和CSS代码量
    父级元素也浮动
    • 让浮动元素的父级元素也浮动
    • 问题:每个元素都得浮动,容易出问题
    伪类清除方法(主流)
    • 将父级div(clearfix)定义如下代码

    • 原理: 利用伪类在元素内插入两个元素块

    清除浮动后的效果

  • 相关阅读:
    联赛模拟测试22 D. 简单计算
    联赛模拟测试22 B. 分组配对 倍增+二分
    斜率优化DP总结
    洛谷 P5490 【模板】扫描线
    容斥原理学习笔记
    联赛模拟测试20 C. Weed 线段树
    联赛模拟测试20 B. Walk (建图)
    联赛模拟测试20 A. Simple (数学)
    洛谷 P2617 Dynamic Rankings 树套树
    社区团购模式
  • 原文地址:https://www.cnblogs.com/wlfsmile/p/7719183.html
Copyright © 2020-2023  润新知