DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> div仿框架方法
div仿框架方法
編輯:CSS詳解     

參與測試的浏覽器:IE6 / IE7 / IE8 / FF3 / OP9.6 / SF3 / Chrome2 
操作系統:Windows

問這樣的問題的人很多,我對此有比較深入的研究,但自己從來沒有給出過完整的解答與分析,覺得有些對不住列祖列宗。

先請看demo:

運行代碼框
 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

大家看到,此時div的實際高寬,完全由left / right / top / bottom這四個屬性所掌控著,於是我們便可以借助這個特性,輕松地完成div仿框架的效果了:

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

讓我們將應該有滾動條的地方的滾動條效果折騰出來:

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

以上方法其實早已由wiseinfo在 Html+CSS 構建 B/S結構軟件界面 — 布局篇 — position方式 中進行過介紹,在該文中,IE6亦是分而治之的,它的方法是在Html代碼頂部加入“<?XML version=”1.0″ encoding=”UTF-8″?>”,使得ie6進入quirks mode(怪異模式)來完成IE6下的div仿框架,但這樣做將出現一些影響比較顯著的弊端:

  1. quirks mode下的IE6連盒模型都變了,就是說你在頁面中寫任何內容就要慎用padding和border,況且quirks mode下的變化還不止這一點。
  2. 如果底部使用絕對定位,則會發生“絕對定位基對象(在此為body)高度為偶數時,出現1px空隙”的bug。

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

於是我們需要另辟蹊徑。

在很多次失敗之後,我終於發現有一個標簽可以救IE6於水深火熱,那就是最偉大的“<Html>”標簽,它繼承了IE6 quirks mode(怪異模式)下的盒模型狀態。

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

利用這一點,我們可以在不太輕松的調整之後完成以下效果:

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

再用下我們的二列布局知識來完成最終形態,在此我們將艷遇著名的3px bug(不喜歡它可以找點別的辦法):

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

現在我們擁有了ie6的仿框架和非IE6的div仿框架的最終形態,只需要利用hack做個簡單的加法則行了:
(當然,同一屬性寫兩遍,後面的屬性所對應的值將覆蓋前者,這個基礎的優先級基礎大家還需要溫故一下。)
(再“當然”一下——當然,有人對hack深惡痛絕,那麼請在使用之前,閱讀此文看看是否能消消心頭之恨。)

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

它很強大而實用,真的:

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

 

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