本人專業是做UI的,寫CSS已經有好幾年了,目前剛剛在部落格發布關於CSS的文章,歡迎有問題的朋友在有問必答論壇提問,我一定儘力解答。
什麼是瀏覽器HACK:當我們使用不同的瀏覽器(Firefox IE7 IE6)訪問同一個網站,或者頁面的時候,會出現一些不相容的問題,有的顯示出來正常,有的顯示出來不正常,我們在編寫CSS的時候會很惱火,剛修複了這個瀏覽器的問題,結果另外一個瀏覽器卻出了新問題。而HACK就是一種辦法,能讓你在一個CSS裡面獨立的寫支援不同瀏覽器的樣式。這下就和諧了。呵呵!
最近微軟發布的IE7瀏覽器的相容性確實給一些網頁製作人員添加了一個沉重的負擔,雖然IE7已經走向標準化,但還是有許多和FF不同的地方,所以需要用到IE7的HACK,有許多朋友問過IE7的HACK是什麼,其實我也不知道。暫時還沒找到IE7專用的HACK。除了前面那片文章,《針對firefox ie6 ie7的css樣式》中的hack方式也是很好用的。
有一點邏輯思想的人都會知道可以用IE和FF的HACK結合起來使用,下面介紹三個HACK,例如:(適合新手,呵呵,高手就在這裡路過吧。)
程式碼
第一個HACK,IE FF 所有瀏覽器 公用(其實也不算是HACK)
height:100px;
第二個HACK IE6專用
_height:100px;
第三個HACK IE6 IE7公用
*height:100px;
介紹完了這三個HACK了,下面我們再來看看如何在一個樣式裡分別給一個屬性定義IE6 IE7 FF專用的HACK,看下面的代碼,順序不能錯哦:
程式碼
height:100px;
*height:120px;
_height:150px;
下面我簡單解釋一下各瀏覽器怎樣理解這三個屬性:
在FF下,第2、3個屬性FF不認識,所以它讀的是 height:100px;
在IE7下,第三個屬性IE7不認識,所以它讀第1、2個屬性,又因為第二個屬性覆蓋了第一個屬性,所以IE7最終讀出的是第2個屬性 *height:120px;
在IE6下,三個屬性IE6都認識,所以三個屬性都可以讀取,又因為第三個屬性覆蓋掉前2個屬性,所以IE6最終讀取的是第三個屬性。