2014-05-07 9 views

Odpowiedz

5

Można użyć CSS adjacent sibling selector aby wybrać pierwszą li element, który nie ma klasę .hide:

EXAMPLE HERE.

li:first-child:not(.hide), 
li.hide + li:not(.hide) { 
    background-color: gold; 
} 

również pod uwagę sprawdzając pierwszy element listy (pierwsze dziecko) dla istnienia .hide nazwą klasy.

+1

Ale co, gdy istnieje wiele li z nazwą klasy nie jest w porządku ? http://jsfiddle.net/5G5ED/5/ – Sowmya

+1

@Sowmya Wtedy ty/on/ona/on/ona może przesłonić deklaracje CSS, celując w następną listę elementów takich jak: 'li: not (.hide) ~ li: not (.hide) {background-color: inherit; } '. ** [ZAKTUALIZOWANE DEMO] (http://jsfiddle.net/5G5ED/6/) ** –

+0

, ale nie sądzisz, że jest to instrukcja obsługi? Zastanawiam się, czy możemy uzyskać jakąkolwiek bezpośrednią metodę. – Sowmya

0

użyciu javascript można zrobić to

http://jsfiddle.net/h_awk/5G5ED/4/

<script> 
var parent = document.getElementById('some_list'), 
    child = parent.getElementsByTagName('li'); 

child[2].style.color = 'blue'; 
</script> 
+0

Nie widzę tutaj tagu [tag: javascript]. – laaposto

+0

, na początek, tagi skryptów to Javascript, a ja użyłem JavaScriptu do manipulowania stylem. – Hawk

1

myślę, że to, co chcesz

#some_list>li.hide + li:not(.hide){ 

    color: #CCC; 

} 
Powiązane problemy