人一旦習慣了某些東西就很難去改,以及各種各樣的原因,新的瀏覽器越來越多,而老的總淘汰不了。成長總是快於消亡導致了瀏覽器相容是成了談不完的話題。說到瀏覽器相容, CSS HACK自然而然地被我們想起。今天,我們通常都有一個團隊或將有一個團隊的人在一個公司裡面做相同的事,需要我們有統一的規範來進行Coding,以方便維護。而解決相容的方法就是(必須是,因為這才最容易有問題的)其中一個最重要的、要解決的規範之一。
在解決相容方法上,想定出一個統一的規範,個人認為應該以下面3點為基本原則:
這裡把成本放在了第一位,並不是說我們不願意追求完美,而只是,太刻意追求完美有時候可能會阻礙我們前進;在成本後,應該是可維護和可讀,這點對於團隊的合作來說至關重要,而最終結果也是為了減少成本。
先把這三個原則存起來,來看看我們平常解決相容的寫法(後面會附上詳細的Hack方法清單):
一、CSS 選擇器Hack
/* Opera */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0)
{head~body .sofish{display:block;}}
這種寫法的優缺點是:
二、CSS 屬性Hack
.sofish{
padding:10px;
padding:9px9; /* all ie */
padding:8px ; /* ie8-9 */
*padding:5px; /* ie6-7 */
+padding:7px; /* ie7 */
_padding:6px; /* ie6 */
}
這種寫法的優缺點是: