溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

運(yùn)用CSS clear:both清除浮動的方法

發(fā)布時間:2020-09-14 14:00:25 來源:億速云 閱讀:292 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關(guān)運(yùn)用CSS clear:both清除浮動的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

我們在制作網(wǎng)頁中用div+css或者稱xhtml+css都會遇到一些很詭異的情況,明明布局正確,但是整個畫面卻混亂起來了,有時候在IE6下看的很正常的,到ie7或者火狐下看時,就一片混亂了,無論怎么計算,就是不能將排版改正過來。其實,這一切都是浮動搞得鬼,也就是css中的float,要解決情況,就需要使用clear:both了。

CSS手冊上是這樣說明的:該屬性的值指出了不允許有浮動對象的邊。這個屬性是用來控制float屬性在文檔流的物理位置的。

當(dāng)屬性設(shè)置float(浮動)時,其所在的物理位置已經(jīng)脫離文檔流了,但是大多時候我們希望文檔流能識別float(浮動),或者是希望float(浮動)后面的元素不被float(浮動)所影響,這個時候我們就需要用clear:both;來清除。

程序代碼:

<p style="float:left;width:200px;">這個是第1列,</p>
<p style="float:left;width:400px;">這個是第2列,</p>
<p>這個是第3列。</p>

如果不用清除浮動,那么第3列文字就會和第1、2列文字在一起 ,所以我們在第3個這列加一個清除浮動 clear:both;

通常,我們往往會將“清除浮動”單獨定義一個CSS樣式,如:

程序代碼

.clear {
clear: both;
}

然后使用<div class="clear"></div>來專門進(jìn)行“清除浮動”。
不過也有不贊同意見是,<div class="clear"></div>可以不寫,直接在下層清除就可以了。
比如本來好好的

程序代碼

<p style="float:left;width:200px;">這個是第1列,</p>
<p style="float:left;width:400px;">這個是第2列,</p>
<p style="clear:both;">這個是第3列。</p>

非要整成

程序代碼

<p style="float:left;width:200px;">這個是第1列,</p>
<p style="float:left;width:400px;">這個是第2列,</p>
<div class="clear"></div>
<p>這個是第3列。</p>

這點看來,<div class="clear"></div>確實不需要寫。
不過很顯然,我們在網(wǎng)頁設(shè)計時還有一種很普遍的情況:

程序代碼

<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
</style>
<div id="main">
<div id="sidebar">第一段內(nèi)容 第一段內(nèi)容 第一段內(nèi)容</div>
<div id="container">第二段內(nèi)容 第二段內(nèi)容 第二段內(nèi)容</div>
</div>
<p style="clear:both;">第三段內(nèi)容</p>

該頁面測試在IE下效果正合所要:藍(lán)色塊內(nèi)部有紅色和黃色兩個色塊內(nèi)容,同時在藍(lán)色塊以下是第三段文本。

不過FF的效果可不是這樣的。我們不能單單想在下一層清除就能完成我們的工作,我們必須在浮動元素所在標(biāo)簽閉合之前及時進(jìn)行“清除”。

程序代碼

<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
.clear {clear: both;}
</style>
<div id="main">
<div id="sidebar">第一段內(nèi)容 第一段內(nèi)容 第一段內(nèi)容</div>
<div id="container">第二段內(nèi)容 第二段內(nèi)容 第二段內(nèi)容</div>
<div class="clear"></div>
</div>
<p>第三段內(nèi)容</p>

對于因多加的<div class="clear"></div>標(biāo)簽會引起IE和FF高度變化,通過如下方法解決:

程序代碼

clear {
clear: both;
height:1px;
margin-top:-1px;
overflow:hidden;
}

程序代碼

<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
.clear {clear: both;height:1px;margin-top:-1px;overflow:hidden;}
</style>
<div id="main">
<div id="sidebar">第一段內(nèi)容 第一段內(nèi)容 第一段內(nèi)容</div>
<div id="container">第二段內(nèi)容 第二段內(nèi)容 第二段內(nèi)容</div>
<div class="clear"></div>
</div>
<p>第三段內(nèi)容</p>

感謝各位的閱讀!關(guān)于運(yùn)用CSS clear:both清除浮動的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

css
AI