從上一節可以看出,網(wǎng)站建設中固定定位與絕對定位很類(lèi)似,只不過(guò)固定元素的包含塊是視窗。固定定位時(shí),元素會(huì )完全從文檔流中去除,不會(huì )有相對于文檔中任何部分的位置。
網(wǎng)頁(yè)設計員可以采用一些有意思的方式充分利用固定定位。首先,可以使用固定定位創(chuàng )建幀式界面??紤]圖10-56,這里顯示了一個(gè)相當常見(jiàn)的布局機制。
圖10-56:使用固定定位模擬幀
這可以使用以下樣式得到:
div#header {position: fixed; top: 0; bottom: 80%; left: 20%; right: 0;background: gray;}
div#sidebar {position: fixed; top: 0; bottom: 0; left: 0; right: 80%; background: silver;}
以上樣式會(huì )把標題和邊欄固定到視窗的頂部和旁邊,并保持不動(dòng),而不論文檔如何滾動(dòng)。
不過(guò)這樣做的缺點(diǎn)是,文檔的其余部分會(huì )被固定元素覆蓋。因此,可能應當把其余內容包含在其自己的div中,并應用以下規則:
div#main {position: absolute; top: 20%; bottom: 0; left: 20%; right: 0; overflow: scroll; background: white;}
甚至可以適當地增加外邊距,在三個(gè)定位div之間建立一些小縫隙,如圖10-57所示:
body {background: black; color: silver;}/* colors for safety's sake */
div#header {position: fixed; top: 0; bottom: 80%; left: 20%; right: 0;background: gray; margin-bottom: 2px; color: yellow;}
div#sidebar {position: fixed; top: 0; bottom: 0; left: 0; right: 80%;
background: silver; margin-right: 2px; color: maroon;}
div#main {position: absolute; top: 20%; bottom: 0; left: 20%; right: 0; overflow: auto; background: white; color: black;}
對于這種情況,網(wǎng)頁(yè)設計員可以向body背景應用一個(gè)平鋪圖像。這個(gè)圖像會(huì )透過(guò)外邊距創(chuàng )建的縫隙顯示出來(lái),如果創(chuàng )作人員認為合適,還可以使縫隙加寬。
固定定位的另一個(gè)用途是在屏幕上放置一個(gè)“永久性”元素,如一個(gè)小的鏈接列表。還可以創(chuàng )建一個(gè)包含版權和其他信息的永久性頁(yè)腳,如下所示:
div#footer {position: fixed; bottom: 0; width: 100%; height: auto;}
這會(huì )把頁(yè)腳放在視窗的底部,并且一直留在那里,而不論文檔如何滾動(dòng)。
使用固定定位的一個(gè)缺點(diǎn)是,Windows平臺的Internet Explorer在IE7之前對此不提供支持。確實(shí)有一些解決辦法可以在較老版本的IE/Win中增加對固定定位的支持,不過(guò)這不一定能得到創(chuàng )作人員的認可,因為與完備的固定定位支持相比,這些模擬方法的顯示不太平滑。還有一種辦法是在IE/Win中對元素絕對定位,而在更高級的瀏覽器中使用固定定位,不過(guò)這也無(wú)法保證對所有布局都可行。
圖10-57:利用外邊距分隔“幀”
注意:網(wǎng)站建設要了解如何在較老版本的IE/Win中模擬固定定位,還可以參考http://css-discum.com/?page=EmulatingFixedPositoning (注 1)[1]。
當前文章標題:網(wǎng)頁(yè)設計中的固定定位
當前URL:http://amzcoolest.com/news/wzzz/fixed-position.html