CSS網站布局div高度自適應–討論

來源:互聯網
上載者:User
很多的Web designer在剛接觸W3C標準的時候,都遇到過高度自適應的問題。因為div等對象的height:100%;並不能夠直接產生實際效果,於是開始懷疑瀏覽器是否支援height:100%;的編寫方法?當然不是,最明顯的例子就是table height="100"是沒有任何問題的。這是很令人煩惱的問題。我瀏覽了很多網站,包括www.w3cn.org等,有的解決辦法是不斷地修改height的固定值,或者利用頁面背景和div背景相同來欺騙瀏覽者的視覺,但都沒有從根本上解決問題。今天從一本《CSS網站布局實錄》上終於找到最完美的解決辦法,來看一下這段高度自適應的CSS代碼:html,body{
     margin:0px;
     height:100%;
}
#left {
     background-color:#CCC;
     width:300px;
     height:100%;
     float:left;
}

代碼已經到了不能再簡單的地步,對#left對象設定了height:100%;,然而也能夠看見,同時設定了HTML與body的height:100%;,而這個就是高度自適應問題的關鍵所在。

分析:
一個對象高度是否可以使用百分比顯示,取決於對象的父級對象,#left在頁面中直接旋轉在body之中,因此它的父級是body,而瀏覽器預設狀態下,是沒有給body一個高度屬性的,因此當我們直接設定#left為height:100%;時,不會產生任何效果,而當我們給body設定了100%之後,它的子級對象#left的height:100%;便發生作用了,這便是瀏覽器解析規則引發的高度自適應問題。而代碼中除了給body應用之外,還給HTML對象也應用相同的樣式設計,這樣做的好處是使IE與firefox瀏覽器都能夠實現高度自適應,而body卻不是。另外,Firefox中的HTML標籤不是100%高度,因此給兩個標籤都定義為height:100%;以保證兩個瀏覽器下均能夠正常顯示。  

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.