清除浮動的幾種方式

原本七天的假期,就想着不用帶電腦,在老家帶一點吃的過來,誰曾想到由於疫情的影響,在老家呆了足足二十多天。我承認手癢了想寫代碼了,由於最近打算換個工作,就找了一些面試題來刷一刷,希望下一份工作能夠滿意。

好了,話不多說,開始今天的內容。我們都知道,如果不給外層div設置高度,那麼它的高度會被裏面的內容撐開,我們經常會遇到這樣一種情況,div裏面的元素是浮動的,那麼,情況就會變得如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>如何清除浮動</title>
    <style>
        .content{
            border: 5px solid red;
        }
        .content .div{
            width: 200px;
            height: 200px;
            float: left;
        }
        .content .div1{
            background: red;
        }
        .content .div2{
            background: green;
        }
        .content .div3{
            background: black;
        }
    </style>
</head>
<body>
    <div class="content">
        <div class="div div1"></div>
        <div class="div div2"></div>
        <div class="div div3"></div>
    </div>
</body>
</html>

下面我提供三種方法解決這種問題:

1.在底部新增一個div清除浮動

<div class="content">
   <div class="div div1"></div>
   <div class="div div2"></div>
   <div class="div div3"></div>
   <div class="clear"></div>
</div>
.content .clear{
    clear: both;
 }

當然,這種方法最致命的缺點就是,多了一個div,會增加渲染的開銷。

2.在父元素添加overflow: hidden;

 .content{
     border: 5px solid red;
     overflow: hidden;
  }

3.通過給父元素添加after僞類(推薦方法)

.content:after{
    content: '';
    clear: both;
    display: block;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章