2011-01-10 72 views
2

是否有任何替代品符合IE8(和怪癖模式)的:not css3選擇器。替代css3不是選擇器

無論是在CSS或JavaScript/jquery模擬選擇器或類似的東西。

我按如下所示使用*:not。隨意推薦一個完全避免使用:not的解決方案。

@media screen { 
    #printable { 
     visibility: hidden; 
    } 
} 

@media print { 
    *:not(#printable) { 
     visibility: hidden; 
    } 
    #printable { 
     position: absolute; 
     visibility: visible; 
    } 
} 

注意的是,使用:not是聯繫在一起的使用@media print所以只使用一個簡單的jQuery解決方案,應用CSS來$(":not(#printable)")而不聰明的將無法正常工作。

包含像ie9.js或selectivirz這樣的整個庫不是一個選項,因爲它可以影響頁面的各個其他部分,並涉及大量的重新測試。

一個的jsfiddle,顯示它在支持:nothttp://jsfiddle.net/Raynos/TjKbz/

回答

5

我不認爲你在這種情況下,需要:not瀏覽器中工作:

@media screen { 
    #printable { 
     visibility: hidden; 
    } 
} 

@media print { 
    * { 
     visibility: hidden; 
    } 
    #printable { 
     position: absolute; 
     visibility: visible; 
    } 
} 

的選擇#printable具有比*更高的優先級,因此您的#printable元素將可見。

+0

這正是我所期待的。 – Raynos 2011-01-10 14:52:48

1

你可以試試特異性覆蓋,即

@media print { 
    * { 
    visibility: hidden; 
    } 
    #printable, #printable * { 
    visibility: visible; 
    } 
}