看一下這段高度自適應的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%;以保證兩個瀏覽器下均能夠正常顯示。