hack是針對不同的瀏覽器去寫不同的css樣式,從而讓各瀏覽器能達到一致的渲染效果,那麼針對不同的瀏覽器寫不同的css code的過程,就叫css hack,同時也叫寫css hack。然後將hack放在瀏覽器特定的css檔案中,讓其符合條件的瀏覽器解析這些**,我們將css hack**放入條件樣式檔案中,符合條件的瀏覽器就解析,不符合的將不解析,從而達到您所需要的頁面渲染效果。
總的一句話來說使用css hack將會使用你的css**部分失去作用,然後借助條件樣式,使用其原css**在一些瀏覽器解析,而css hack**在符合條件要求的瀏覽器中替代原css那部分**。常見的就是在ie6下使用,下面我們就一起來看看所有瀏覽器都具有什麼hack,換句話說,各種瀏覽器都能識別哪些css的寫法。
下面是我從網上收集的有關於各瀏覽器下hack的寫法
1、firefox
@-moz-document url-prefix() }
上面是僅僅被firefox瀏覽器識別的寫法,具體如:
@-moz-document url-prefix() }
支援firefox的還有幾種寫法:
/* 支援所有firefox版本 */
#selector[id=selector]
或者: @-moz-document url-prefix() }
/* 支援所有gecko核心的瀏覽器 (包括firefox) */ *>.selector
2、webkit枘核瀏覽器(chrome and safari)
@media screen and (-webkit-min-device-pixel-ratio:0) }
上面寫法主要是針對webkit核心的瀏覽器,如google chrome 和 safari瀏覽器:
@media screen and (-webkit-min-device-pixel-ratio:0) }
3、opera瀏覽器
html:first-child>body selector
或者: @media all and (min-width:0) }
或者: @media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:
0) }
上面則是opera瀏覽器的hack寫法:
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) }
4、ie9瀏覽器
:root selector
上面是ie9的寫法,具體應用如下:
:root .demo
5、ie9以及ie9以下版本
selector
這種寫法只有ie9以及ie9以下版本能識別,這裡需要注意此處「9」只能是「9」不能是別的,比如說「8」,不然會失去效果的,如:
.demo
6、ie8瀏覽器
selector 或者: @media screen }
上面寫法只有ie能識別,如:
.color 或者: @media screen }
7、ie8以及ie8以上的版本
selector
這種寫法只有ie8以及ie8以上版本支援,如
.demo
8、ie7瀏覽器
*+html selector 或 *:first-child+html selector
上面兩種是ie7瀏覽器下才能識別,如:
*+html .demo 或者: *:first-child+html .demo
9、ie7及ie7以下版本瀏覽器
selector
上面的寫法在ie7以及其以下版本都可以識別,如:
.demo
10、ie6瀏覽器
selector 或者: selector 或者: *html selector
具體應用如下:
.demo 或者: .demo 或者: *html .demo
上面具體介紹了各種版本瀏覽器下如何識別各種的hack寫法,包括了ie6-9以及現代版本的瀏覽器寫法。綜合上面的所述,我們針對不同瀏覽器的hack寫法主要分為兩種從css選擇器和css屬性上來區別不同的hack寫法。下面我們分別來看這兩種的不同寫法:
css選擇器的hack寫法
下面我們主要來看css選擇器和css屬性選擇器在不同瀏覽器的支援情況。下面先來看css選擇器支援情況。
css選擇器的hack寫法
1、ie6以及ie6以下版本瀏覽器
* html .demo
2、僅僅ie7瀏覽器
*:first-child+html .demo
3、除ie6之外的所有瀏覽器(ie7-9, firefox,safari,opera)
html>body .demo
4、ie8-9,firefox,safari,opear
html>/**/body .demo
5、ie9+
:root .demo
6、firefox瀏覽器
@-moz-document url-prefix() }
6、webkit核心瀏覽器(safari和google chrome)
@media screen and (-webkit-min-device-pixel-ratio:0) }
7、opera瀏覽器
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) }
8、iphone / mobile webkit
@media screen and (max-device-width: 480px) }
css屬性hack寫法
1、ie6瀏覽器
.demo
2、ie6-7瀏覽器識別
.demo
3、所有瀏覽器除ie6瀏覽外
.demo
4、ie6-9瀏覽器
.demo
5、ie7-8瀏覽器
.demo
上面羅列的都是各種瀏覽器下的有關於css的hack的寫法,基中有針對於現代瀏覽器safari,google chrome和firefox的寫法,而且也有針對於我們前端人員最討厭的ie6-9的各版本瀏覽器的hack的寫法,而且這些hack我們又分為css選擇器的hack寫法和css屬性的hack寫法。然而具體何種適用,大家可以要據自己的需求來定。
區別各種IE瀏覽器和火狐的css寫法
2011 08 29 00 33 1.區別ie和非ie瀏覽器 如下 tip 2.區別ie6,ie7,ie8,ff 區別符號 9 示例 如下 tip 說明 因為ie系列瀏覽器可讀 9 而ie6和ie7可讀 公尺字型大小 另外ie6可辨識 底線 因此可以依照順序寫下來,就會讓瀏覽器正確的讀取到自己看得懂...
怎樣加密瀏覽器,設定瀏覽器密碼
怎樣加密瀏覽器,設定瀏覽器密碼!有的時候我們需要給瀏覽器做乙個限制,只有通過密碼才能使用瀏覽器。雖然有點麻煩,但是有的時候還是非常管用的。比如外出把小孩留在家裡,讓他學習電腦軟體又不能上網,這個時候就可以設定瀏覽器密碼了。方法很簡單。1 首先,開啟桌面的internet explorer瀏覽器 然後...
瀏覽器研究
瀏覽器核心的解析和對比 要搞清楚瀏覽器核心是什麼,首先應該先搞清楚瀏覽器的構成。簡單來說瀏覽器可以分為兩部分,shell 核心。其中shell的種類相對比較多,核心則比較少。shell是指瀏覽器的外殼 例如選單,工具欄等。主要是提供給使用者介面操作,引數設定等等。它是呼叫核心來實現各種功能的。核心才...