1. 程式人生 > >分析div自動適應瀏覽器的高度

分析div自動適應瀏覽器的高度

前端人員之間有一個普遍存在的問題,如何讓一個div的高度自動延伸到瀏覽視窗100%的高度,在佈局中,我們有時會用到高度自適應,例如,我們定義了一個 div,並且希望它的高度為視窗高度的100% ,那麼我們該如何編寫程式碼呢?用height:100%就可以了。但要注意的是,瀏覽器對css的解析方式有一點差異。我們需要弄清楚100% 到底是誰佔誰的100%,讓我給你另外一種方式來思考HTML,幾乎每一個HTML檔案都有一組容器彼此包含的。因此,在我們的頁面裡面,首先我們有一個<html>容器,其次<body>容器包含在<html>裡,最後才是<div id=”content”></div>容器包含在裡面。當我們往任何一個容器裡面放置內容的時候,這個容器和包含此容器的父容器盒子都會自動延伸的,從而能容下這些新新增的內容。也就是說,當我們往<div id=”content”></div>容器盒子新增文字內容的時候,這個div容器盒子是自動延伸的,包含這個div容器的父容器盒子(body與html)依次是自動延伸的。

當我們給<div id=”content”></div>容器定義“height:100%”樣式時,我們現在做的就是告訴它讓其高度延伸到包含它的父容器的整個高度。這個div容器被包含在<body>容器裡面,所以<div id=”content”></div>就是body的整個高度。好了,body容器是如何延伸增長的那?它就像<div id=”content”></div>的高度一樣,因為我們從來沒有告訴它如何增高的。所以當我們給<div id=”content”></div>定義“height:100%”樣式的時候,我們僅僅告訴了它自己。

解決此問題,我需要告訴<body>容器變的大一些兒,同時<html>容器也會出現同樣的問題,它應該與<body>一樣大。用百分比要設定高度時,需要明確父級物件的高度。要不然瀏覽器會使用預設值。所以,要是實現開始所說的佈局,程式碼應該這樣寫:

html ,body{height:100%;}
#wrapper(div){height:100%;}
也就是讓div的父級物件的高度確定為視窗的100%。因為html 和body 的預設值在ie和ff下並不都是100%。這樣問題就可以解決了。

轉自:http://www.nnit30.com/news/news.asp?ArticleID=5698