CSS深入理解之float(HTML/CSS)

float的设计初衷仅仅是:为了文字环绕效果

 

float的包裹与破坏

包裹:收缩、坚挺、隔绝(BFC)

破坏:父元素高度塌陷

复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Layout</title>
    <style>
      .box{
          border: 1px solid red;
          width: 300px;
          margin: 20px auto;
      }
      .left{
          float: left;
          height: 100px;
          width: 50px;
          border: 1px solid black;
      }
      .right{
          float: right;
          height: 100px;
          width: 50px;
          border: 1px solid green;
      }
    </style>
  </head>
  <body>
    <div class="box">
        <div class="left"></div>
        <div class="right"></div>
    </div>
  </body>
</html>
View Code
复制代码

 

如何降低float破坏性的影响(清除浮动)?

1、底部插入clear:both;

复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Layout</title>
    <style>
      .box {
        border: 1px solid red;
        width: 300px;
        margin: 20px auto;
      }
      .clearfix {
        clear: both;
      }
      .left {
        float: left;
        height: 100px;
        width: 50px;
        border: 1px solid black;
      }
      .right {
        float: right;
        height: 100px;
        width: 50px;
        border: 1px solid green;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <div class="left"></div>
      <div class="right"></div>
      <div class="clearfix"></div>
    </div>
  </body>
</html>
View Code
复制代码
复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Layout</title>
    <style>
      .box {
        border: 1px solid red;
        width: 300px;
        margin: 20px auto;
      }
      .box:after {
        content: '';
        display: block;
        height: 0;
        overflow: hidden;
        clear: both;
      }
      .left {
        float: left;
        height: 100px;
        width: 50px;
        border: 1px solid black;
      }
      .right {
        float: right;
        height: 100px;
        width: 50px;
        border: 1px solid green;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <div class="left"></div>
      <div class="right"></div>
    </div>
  </body>
</html>
View Code
复制代码
复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Layout</title>
    <style>
      .box {
        border: 1px solid red;
        width: 300px;
        margin: 20px auto;
      }
      .box:after {
        content: '';
        display: table;
        clear: both;
      }
      .left {
        float: left;
        height: 100px;
        width: 50px;
        border: 1px solid black;
      }
      .right {
        float: right;
        height: 100px;
        width: 50px;
        border: 1px solid green;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <div class="left"></div>
      <div class="right"></div>
    </div>
  </body>
</html>
View Code
复制代码

2、父元素BFC/haslayout

复制代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Layout</title>
    <style>
      .box {
        border: 1px solid red;
        width: 300px;
        margin: 20px auto;
        overflow: hidden;
      }
      .left {
        float: left;
        height: 100px;
        width: 50px;
        border: 1px solid black;
      }
      .right {
        float: right;
        height: 100px;
        width: 50px;
        border: 1px solid green;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <div class="left"></div>
      <div class="right"></div>
    </div>
  </body>
</html>
View Code
复制代码

 

float的特性

1、元素block块状化(砖头化);

2、破坏性造成的紧密排列特性(去空格化)。

 

posted @   Z皓  阅读(321)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示