2013-11-04 284 views
7

我想改變DIV背景的亮度,而不影響div中的其他內容。用CSS改變背景的亮度

當我在div上應用懸停亮度過濾器時,其中的其他元素也受到影響。我不想要的。

我的另一個解決方案是用編輯過的照片替換div的背景。但是,這需要雙倍的存儲空間,我不喜歡。

有沒有辦法改變背景圖像的亮度?

JSFIDDLE

<div id="replace"> 
    <div id="transparent"> 
     <span id="text">Random unaffected text</span> 
    </div> 
</div> 

    <div id="brightnessfilter"> 
    <div id="transparent"> 
     <span id="text">Random AFFECTED text (it glows)</span> 
    </div> 
</div> 

#replace { 
width:700px; 
height:465px; 
background-image:url('http://i42.tinypic.com/351dff5.jpg'); 
} 

#brightnessfilter { 
    width:700px; 
    height:465px; 
    background-image:url('http://i42.tinypic.com/351dff5.jpg'); 
} 

#brightnessfilter:hover { 
    -webkit-filter: brightness(1.3); 
-moz-filter: brightness(1.3); 
-o-filter: brightness(1.3); 
-ms-filter: brightness(1.3); 
} 

#transparent { 
    position:relative; 
    top:400px; 
    width:700px; 
    height:65px; 
    background-color:rgba(0,0,0,.5); 
    border-radius:8px; 
} 

#text { 
    color:white; 
    font-weight:bold; 
    position:relative; 
    top:9px; 
    left:9px; 
    font-size:16px; 
} 

#replace:hover { 
    background-image:url('http://i40.tinypic.com/2cft7dl.jpg'); 
} 

上面這裏是創造預期的效果鏈接到一個撥弄我的兩個嘗試。但兩者在使用時都有缺點。

在此先感謝!

+0

不是沒有一些非語義的HTML – PlantTheIdea

回答

-1

感謝您的幫助。但是,當我發佈這個消息之後,我發現了一個想法。

我使用CSS來將整個div內容更改爲亮度1.3,並且將文本的亮度更改爲0.8即使是亮度也是如此。

像這樣:

JSFIDDLE

<div id="brightnessfilter"> 
    <div id="transparent"> 
     <span id="text">Random AFFECTED text (it glows)</span> 
    </div> 
</div> 

#brightnessfilter { 
    width:700px; 
    height:465px; 
    background-image:url('http://i42.tinypic.com/351dff5.jpg'); 

} 

#brightnessfilter:hover { 
    -webkit-filter: brightness(1.3); 
-moz-filter: brightness(1.3); 
-o-filter: brightness(1.3); 
-ms-filter: brightness(1.3); 
} 

#brightnessfilter:hover #text { 
    -webkit-filter: brightness(0.8); 
-moz-filter: brightness(0.8); 
-o-filter: brightness(0.8); 
-ms-filter: brightness(0.8); 
} 

#transparent { 
    position:relative; 
    top:400px; 
    width:700px; 
    height:65px; 
    background-color:rgba(0,0,0,.5); 
    border-radius:8px; 
} 

#text { 
    color:white; 
    font-weight:bold; 
    position:relative; 
    top:9px; 
    left:9px; 
    font-size:16px; 
} 

我只是不知道正確的數字0.7似乎不太光明高於正常0.8似乎沒有亮。

+0

我不會說這是一個非常靈活的方法......如果在該框中添加任何其他元素會怎麼樣?你也將分別應用過濾器到每個新組件?什麼是變化?再次對所有這些應用更改? – Agat

+0

是的,但內容將始終如一。只有背景圖片和文字會隨時間而改變。但在這種情況下,元素的數量永遠不會改變。 – user2953063

+0

我在這裏建議的簡單方法有什麼問題:http://stackoverflow.com/a/19773431/691660?你想要使用過濾器嗎?他他 – Agat