2013-03-31 12 views
7

Desidero modificare il colore di un elemento Hdr_nav_search_box quando ci si concentra su un altro elemento Hdr_nav_search_input. Ecco i codici: http://jsfiddle.net/FJAYk/4/ Non vedo perché questo non funziona.concentrandosi su un elemento modifica il CSS di un altro

<input class="Hdr_nav_search_input" /> 
<div class="Hdr_nav_search_box" /><span>search for location....</span><i>for example: blah blah</i></div> 

-

.Hdr_nav_search_box{ 
padding: 0 5px; 
margin: 7.5px 0; 
width:300px; 
height: 25px; 
background: white; 
} 
.Hdr_nav_search_input:focus .Hdr_nav_search_box{ 
color: #d4d4d4; 
} 
.Hdr_nav_search_box span,.Hdr_nav_search_box i{ 
line-height: 25px; 
color: gray; 
} 
.Hdr_nav_search_input{ 
padding: 0 5px; 
margin: 7.5px 0; 
border: 0; 
z-index: 2; 
position: absolute; 
width:300px; 
height: 25px; 
background: transparent;  
} 
+0

penso che si è collegato al violino sbagliato. – Scott

+0

@Scott Scusate e grazie, ho aggiornato il collegamento. – Sami

risposta

15

ci sono stati alcuni problemi con i vostri stili. In primo luogo, il tuo selezionatore per scegliere come target la scatola non è del tutto corretto.

.Hdr_nav_search_input:focus .Hdr_nav_search_box 

che sta applicando la selezione di tutte .Hdr_nav_search_box dove sono un discendente di .Hdr_nav_search_input. In realtà è un fratello in modo che si desidera utilizzare il selettore successivo fratello +:

.Hdr_nav_search_input:focus + .Hdr_nav_search_box 

In secondo luogo questo selettore sarebbe override vostro cambiamento di colore se stesse funzionando.

.Hdr_nav_search_box span,.Hdr_nav_search_box i{ 
    ... 
} 

Potreste usare semplicemente

.Hdr_nav_search_box { 
    ... 
} 

Ecco una demo ed i cambiamenti di stile che ho fatto per farlo funzionare.

jsFiddle

.Hdr_nav_search_input:focus + .Hdr_nav_search_box { 
    color: #F00; 
} 
.Hdr_nav_search_box { 
    line-height: 25px; 
    color: gray; 
} 
+0

Grazie per la risposta informativa. – Sami

Problemi correlati