浮動是咱們在前端頁面中常常會用到的一種佈局方式。那什麼是浮動呢?前端
首先咱們先來看一下它的定義。浮動是指讓元素脫離文檔標準流(脫標),按照指定的方向去橫向排列。浮動的取值有兩個,分別是float:left;(向左浮動) float:right;(向右浮動) ide
那浮動都有哪些特色呢? 浮動有四個特色:(1) 可使元素脫離標準流;(2)可使元素改變形態,如:浮動的塊標籤,寬度變爲內容撐開的寬度;又如sapn標籤,浮動後能夠設置其寬高。(3)浮動的元素頂部對齊成一行排列(也能夠說,浮動的元素之前面的一個元素的底部對齊。) (4)浮動不影響前面的元素,隻影響後面的元素。佈局
如今咱們來看一下它的應用場景。浮動經常使用於:導航條,文字環繞(浮動最開始就是爲了解決這個問題出現的),浮動佈局等等。文檔
雖然運用浮動是很方便咱們的頁面佈局,可是元素浮動後也會出現一些問題,這些問題是會影響咱們繼續咱們下面的頁面佈局,因此咱們要清除浮動。那麼問題來了,什麼叫清除浮動呢?難道是把咱們在源碼中寫的float:left;和float:right;去掉,NO,NO,NO,固然不是!!!源碼
清除浮動是清除因爲浮動帶來的不利影響。咱們要明白,咱們所說的清除浮動是清除浮動帶來的不利影響,這是由於浮動後的元素會對後面的元素會形成影響,致使網頁佈局出現問題。下面咱們就來講說如何清除浮動帶給咱們的不利影響。博客
清除浮動的方法總結起來有四種,分別是:父元素加高法,overflow方法,空標籤法和僞元素法。我會分別進行詳細介紹。頁面佈局
第一種方法:父元素加高法。 給父元素設置高度。 原理:子元素浮動後,脫離文檔流,父元素未設置高度的話,由於其內容是0(默認是內容撐開父元素的高的,但如今子元素浮動了),故父元素高度也會變爲0,致使後面的元素緊挨着父元素,與浮動元素衝突,使文檔的佈局出現問題。io
參考代碼以下:class
<style>
main{
border: 1px solid black;原理
/*給父元素加高。不推薦使用*/
height: 302px;
}
div{
width: 300px;
height: 300px;
border: 1px solid red;
float: left;
}
section{
height: 40px;
border: 1px solid blue;
}
</style>
<body>
<main>
<div></div>
<div></div>
</main>
<section></section>
</body>
第二種方法:overflow方法。 在父元素中加overflow:hidden;
參考代碼以下:
<style>
main{
border: 1px solid black;
/*在父元素中加overflow:hidden;,可是這種方式也不推薦使用*/
overflow:hidden;
}
div{
width: 300px;
height: 300px;
border: 1px solid red;
float: left;
}
section{
height: 40px;
border: 1px solid blue;
}
</style>
<body>
<main>
<div></div>
<div></div>
</main>
<section></section>
</body>
第三種方法:空標籤法。也能夠稱之爲內牆法或外牆法,使用時選擇下面代碼中的其中一種便可,但這種空標籤法也不推薦使用。(其中的行內樣式也能夠寫在頁內樣式style中或外部CSS樣式文件中。)
參考代碼以下:
<style>
main{
border: 1px solid black;
}
div{
width: 300px;
height: 300px;
border: 1px solid red;
float: left;
}
section{
height: 40px;
border: 1px solid blue;
}
</style>
<body>
<main>
<div></div>
<div></div>
<!--內牆法-->
<aside style="clear: both"></aside>
</main>
<!--外牆法-->
<!--<aside style="clear: both"></aside>-->
<section></section>
</body>
第四種方法:僞元素法。 強烈推薦使用此方法。 由於僞元素這種方法沒有在源碼中寫多餘的代碼標籤,且能夠在頁面佈局中重複使用。重複使用時,只需定義一個class類,而後給須要清除浮動的標籤加上class=""就OK了。
參考代碼以下:
<style>
main{
border: 1px solid black;
}
div{
width: 300px;
height: 300px;
border: 1px solid red;
float: left;
}
section{
height: 40px;
border: 1px solid blue;
}
main::after{
content: "";
display: block;
clear: both;
}
</style>
<body>
<main>
<div></div>
<div></div>
</main>
<section></section>
</body>
以上就是我對浮動的一些膚淺認識,若有錯誤,還但願各位博友幫忙指正哦!
PS:這是我寫的第一個博客哦,很開森!!!