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

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

 

float的包裹与破坏ide

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

破坏:父元素高度塌陷设计

<!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破坏性的影响(清除浮动)?code

一、底部插入clear:both;htm

<!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

二、父元素BFC/haslayoutblog

<!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的特性utf-8

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

二、破坏性形成的紧密排列特性(去空格化)。event

相关文章
相关标签/搜索