2013-11-04 19 views
7

Voglio cambiare la luminosità dello sfondo di un DIV, senza influenzare gli altri contenuti in un div.Cambia la luminosità di SOLO lo sfondo con i CSS

Quando si applica un filtro di luminosità al passaggio del mouse sul div, anche gli altri elementi in esso sono interessati. Che non voglio

L'altra soluzione che ho è semplicemente la sostituzione dello sfondo del div con una foto modificata. Ma questo richiede il doppio della memoria, che non mi piace.

C'è un modo per modificare solo la luminosità dell'immagine di sfondo?

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'); 
} 

Sopra: ecco un link per un violino con i miei due tentativi di creare l'effetto desiderato. Ma entrambi hanno uno svantaggio nell'usarlo.

Grazie in anticipo!

+0

non senza un codice HTML non semantico – PlantTheIdea

risposta

-1

Grazie per tutto l'aiuto. Ma ovviamente subito dopo aver postato questo mi è venuta un'idea.

Io uso il css per modificare l'intero contenuto div alla luminosità 1.3 e poi modifico la luminosità del testo a 0.8 per uniformarlo.

Ti piace questa:

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; 
} 

Ho appena non so il numero corretto 0.7 sembra meno brillante rispetto al normale 0.8 sembra poco a brillante.

+0

Non direi che questo è un approccio davvero flessibile ... Cosa succede se aggiungete altri elementi all'interno di quella casella? Applicherete anche il filtro a ciascun nuovo componente separatamente? Cosa significa cambiamenti? Per applicare nuovamente le modifiche su ognuno di questi? – Agat

+0

Vero, ma il contenuto sarà sempre lo stesso. Solo l'immagine di sfondo e il testo cambieranno nel tempo. ma la quantità di elementi non cambierà mai in questo caso. – user2953063

+0

Qual è il problema con l'approccio semplice che ho suggerito qui: http://stackoverflow.com/a/19773431/691660? Vuoi usare il filtro così tanto? he lui – Agat

Problemi correlati