2014-09-28 69 views
4

我有一個CSS代碼,可以使整個頁面的灰度。想要使整個頁面的灰度,除了指定div

<style type="text/css"> 
html { 
    -webkit-filter: grayscale(100%); 
    -moz-filter: grayscale(100%); 
    filter: grayscale(100%); 
} 
</style> 

我現在想嵌入一個iframe內不會受到影響。我已經搜索瞭解決方案和來源:不選擇。當我指的是在6.6.7 http://www.w3.org/TR/css3-selectors/#negation我想我已經找到了解決方案,因爲它可以工作,即使我把HTML作爲我的CSS選擇器

html|:not(x) 

所以我改變了代碼,就像上面的代碼,但什麼都沒有改變。我很擔心的問題是通過我的網站的設計造成的,所以我決定把他們的jsfiddle以最簡單的HTML代碼

<div id="abc" class="abc"><font color="red">This should be a normal text.</font></div> 
<font color="red">This should be an affected text.</font> 

在CSS

html|*:not(.abc) { 
-webkit-filter: grayscale(100%); 
-moz-filter: grayscale(100%); 
filter: grayscale(100%); } 

鏈接:http://jsfiddle.net/4vxyqdye/1/ PS:在我以前使用的版本:不是(.abc),而是所有元素都變成灰度。

回答

2

想想在選擇的重量,HTML是一種普遍選擇,不是更具體的選擇少重,像clases或ID,如果你這樣做:

html { 
    -webkit-filter: grayscale(100%); 
    -moz-filter: grayscale(100%); 
    filter: grayscale(100%); 
} 

html .class-you-wanna-exlude { 
    -webkit-filter: grayscale(0%); 
    -moz-filter: grayscale(0%); 
    filter: grayscale(0%); 
} 

我認爲這將解決您的問題。

2

應用過濾器的<body>所有兒童,不包括指定的類,具有:
body :not(.class-to-not-filter) { filter }

Have an example!

CSS

body :not(.exclude) { 
    -webkit-filter: grayscale(100%); 
    -moz-filter: grayscale(100%); 
    filter: grayscale(100%); 
} 

.exclude { 
    background: yellow; 
    height: 100px; 
} 

.gray { 
    background: purple; 
    height: 100px; 
} 

HTML

<div class="exclude"></div> 
<div class="gray"></div> 
相關問題