DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> DIV+CSS 中的 overflow:hidden用法
DIV+CSS 中的 overflow:hidden用法
編輯:CSS詳解     

overflow:hidden這個CSS樣式是大家常用到的CSS樣式,但是大多數人對這個樣式的理解僅僅局限於隱藏溢出,而對於清除浮動這個含義不是很了解。

一提到清除浮動,我們就會想到另外一個CSS樣式:clear:both,我相信對於這個屬性的理解大家都不成問題的。但是對於“浮動”這個詞到底包含什麼樣的含義呢?我們下面來詳細的闡述一下。

這是一個常用的div寫法,下面我們來書寫樣式。大家可以自己做試驗

#wai{ width:500px; background:#000; height:500px;}

#li { float:left; width:600px; height:600px; background:red;}

可以看到,我給li這個id加了一個浮動,我們常規的理解是,我們允許li這個id的div的右邊出現其他的內容,只要它的寬度不超過wai這個div和nei這個div的剩余值。

如果div wai中還包含其他的div,我不允許它出現在nei的右側,我們則用樣式clear:both指定這個div,不允許它浮動在li右側。

這些在IE6裡面是正確的,但是在火狐或者其他浏覽器裡面,我們發現問題並非如此簡單。我們發現,當li這個div的寬度和高度都大於wai這個div的時候,wai並沒有被內撐開而是依舊顯示為我們指定的寬高,在我的例子中,都是500。

這個時候我不理解了,我搜索了很多的資料,但是都沒能理解這是為什麼,直到看到別人在類似的情況下給wai這個div加了一個overflow:hidden這個屬性解決了這個問題。

我們直到overflow:hidden這個屬性的作用是隱藏溢出,給wai加上這個屬性後,我們的li的寬高自動的被隱藏掉了。另外,我們再做一個試驗,將wai這個div的高度值刪除後,我們發現,wai的高度自動的被li這個div的高度值給撐開了。

說到這裡,我們再來理解一下“浮動”這個詞的含義。我們原先的理解是,在一個平面上的浮動,但是通過這個試驗,我們發現,這不僅僅是一個平面上的浮動,而是一個立體的浮動!

也就是說,當li這個div加上浮動這個屬性的時候,在顯示器的側面,它已經脫離了wai這個div,也就是說,此時的li的寬高是多少,對於已經脫離了的wai來說,都是不起作用的。打個形象的比喻就是當你吃的雪糕脫離你的嘴的時候,雪糕的大小對於你的嘴是沒有撐開的作用的(-_-)

OK,當我們全面的理解了浮動這個詞的含義的時候,我們就理解overflow:hidden這個屬性中的解釋,清除浮動是什麼意思了。也就是說,當我們給wai這個div加上overflow:hidden這個屬性的時候,其中li等等帶浮動屬性的div的在這個立體的浮動已經被清除了,就好比雪糕又進入了你的嘴內,雪糕的大小自然又會影響到你張嘴的大小。

這就是overflow:hidden這個屬性清除浮動的准確含義。

當我們沒有給wai這個div設置高度的時候,li這個div的高度,就會撐開wai這個div,而在另一個方面,我們要注意到的是,當我們給wai這個div加上一個高度值,那麼無論li這個div的高度是多少,wai這個高度都是我們設定的值。而當li的高度超過wai的高度的時候,超出的部分就會被隱藏。這就是隱藏溢出的含義!

我相信,通過我的這些文字,大家對overflow:hidden這個屬性有了全新的認識。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">

<html XMLns="http://www.w3.org/1999/xHtml">

<head>

<meta http-equiv="Content-Type" content="text/Html; CHARSET=gbk" />

<title>無標題文檔</title>

</head>

<style type="text/CSS">

<!--

*{margin:0px; padding:0px;}

#menu { overflow:hidden; margin:10px; width:200px; background:#000000;}

#menu h1 {

color:#00CCFF;

font-family: "宋體";

font-size: 14px;

font-style: normal;

line-height: 16px;

font-weight: normal;

font-variant: normal;

}

#menu li { display:block; padding:10px; width:178px; border:1px solid #CCCCCC; border-top-width:0px; list-style:none;}

#menu li a { display:block; width:100%; text-decoration:none;}

#menu li a span {

display:none;

padding:20px 0 0 0;

color:#FF9900;

font-family: "宋體";

font-size: 12px;

font-style: normal;

line-height: 16px;

}

#menu li a:hover { background:#000000;}

#menu li a:hover span { display:block; cursor:hand;}

-->

</style>

<body>

<ul id="menu">

<li class="end"><a href="#">

<h1>我該怎麼做?</h1>

<span>面對這樣的事實……?</span></a>

</li>

<li><a href="#">

<h1>暫時就這樣做吧!</h1>

<span>面對這樣的事實……!</span></a>

</li>

<li><a href="#">

<h1>將來也要這麼做!</h1>

<span>不管事情發展到如何地步,不管別人怎麼看待,不管未來的路有多艱辛,我都要堅定不移的走下去!</span></a>

</li>

<li><a href="#">

<h1>如果是你你怎麼選?</h1>

<span>假如這樣的事……?</span></a>

</li>

<li><a href="#">

<h1>也許大家很暈</h1>

<span>也許大家很暈,……!</span></a>

</li>

</ul>

</body>

</Html>

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved