• css-浮动与清除浮动的原理详解(清除浮动的原理你知道吗)


    float元素A的特点:
    1. 脱离文档流
    2. 靠向left或right
    3. float元素会和块盒子重叠
      • 准确来说,是块盒子和A重叠,但块盒子内容会浮动在A周围
      • 不会和inline元素重叠

        <div class="parent">
            <div class="box"></div>
            <p>
                孟子曰:“君子有三乐,而王天下不与存焉。父母俱存,兄弟无故①,一乐也;仰不愧于天,俯不怍②于人,二乐也;得天下英才而教育之,三乐也。
    君子有三乐,而王天下者不与存焉孟子曰:“君子有三乐,而王天下不与存焉。父母俱存,兄弟无故①,一乐也;仰不愧于天,俯不怍②于人,二乐也;得天下英才而教育之,
    三乐也。君子有三乐,而王天下者不与存焉孟子曰:“君子有三乐,而王天下不与存焉。父母俱存,兄弟无故①,一乐也;仰不愧于天,俯不怍②于人,二乐也;
    得天下英才而教育之,三乐也。君子有三乐,而王天下者不与存焉
    </p> <div class="box"></div> <div class="behind"></div> <div class="box"></div> </div> .parent{ 380px; background-color:rgb(25, 132, 199); } .box{ 120px; height: 100px; float: left; background-color: rgb(25, 199, 185); } .behind{ 150px; height: 120px; background-color: black; }

    图中显示了浮动导致的三大问题
    (1)高度塌陷,父元素parent没被子浮动元素撑开
    (2)浮动元素 和 块状元素 重叠
    (3)文字、非块状元素img浮动在浮动元素周围(本质上这也算是第二种元素重叠的问题,因为元素重叠了而内容浮动在其周围)
     
    主要的解决方法分三类:1.构建BFC元素   2.利用清除浮动的属性clear   3.暴力解法
    1.构建BFC元素
    BFC元素的两个特性①float元素不会和BFC元素重叠 ②BFC元素计算高度会算上float元素,所以BFC就可以解决float带来的高度塌陷、元素重叠的问题
    • 高度塌陷:将父元素设置为BFC元素
    • 元素重叠:将浮动元素之后的元素设置为BFC元素
    设置BFC元素的方式:
    display:inline-block、table-cell
    overflow:auto、scroll、hidden
    float:left、right
    position:absolute、fixed
    2.利用清除浮动的属性clear

    可在浮动元素后添加清除浮动的空元素、伪元素,这种方法适用于浮动带来的任何问题

    • <div style="clear: both"></div>
    • <br clear="all">
    • ::after{content:""; display:block; clear:both;}

     需要注意的是解决元素重叠时,BFC解决的结果为,将元素变为inline-block元素,float元素和BFC元素处于一行;而clear属性解决时,只是禁止浮动上来的元素靠近,float元素和后面的元素处于一列;如下图

     解决浮动问题的方法很多,需要根据不同的情况来选择最适合的方法

  • 相关阅读:
    HEVC的參考队列解码
    【linux高级程序设计】(第十四章)TCP高级应用 2
    【linux高级程序设计】(第十四章)TCP高级应用
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础 4
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础 3
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础 2
    【linux高级程序设计】(第十三章)Linux Socket网络编程基础
    【linux高级程序设计】(第十二章)Linux多线程编程 4
    【linux高级程序设计】(第十二章)Linux多线程编程 3
    【linux高级程序设计】(第十二章)Linux多线程编程 2
  • 原文地址:https://www.cnblogs.com/hjqbit/p/7452733.html
Copyright © 2020-2023  润新知