2012-07-04 9 views
7

Ho il seguente pezzo di codice HTML:CSS primo figlio di classe specifica

<span class="ui-icon ui-icon-triangle-1-s"></span> 
<span class="route-line">4</span> 
<span class="route-line">33</span> 

vorrei aggiungere un certo stile sul primaspan con class="route-line". È possibile con i CSS? È qualcosa come nth-of-type; se fosse esistito, sarebbe stato chiamato nth-of-type-with-class.

Grazie!

risposta

3

prima campata con classe .route-line seguita per qualsiasi altro elemento che non hanno classe .route-line

*:not(.route-line) + span.route-line 
{ 
    background-color:yellow; 
} 
+0

Funziona, ma il '*' non richiede molto tempo? – linkyndy

+0

È possibile sostituire * con uno span se si nota una lentezza – Leo

+0

Esatto. È simile alla precedente risposta accettata, ma credo che questo sia più vicino a ciò di cui ho bisogno. Grazie! – linkyndy

2

Perché non si applica un'altra classe all'elemento che si desidera applicare allo stile.

<span class="ui-icon ui-icon-triangle-1-s"></span> 
<span class="route-line custom-route-line">4</span> 
<span class="route-line">33</span> 

E il css sarebbe simile a questa

.custom-route-line{/*your styling goes here*/} 

Nota entrambi gli stili di classi (percorso linea & custom-percorso-line) si applicano a tale elemento. Take a look here

+1

Lo so, ma volevo mantenere l'HTML il più pulito possibile. – linkyndy

9

In questi casi è possibile utilizzare il selettore di pari livello. In questo modo:

.ui-icon + .route-line{ 
    color: red; 
} 

Sarà lo stile solo il span che segue l'elemento con una classe ui-icon.

+0

+1 per la nuova tecnica di cui non ero a conoscenza. – menislici

+0

Probabilmente rimarrò con questa soluzione finché non ne trovo una migliore. Grazie! – linkyndy

1

Cosa stavate cercando è span.route-line:first-of-type, ma è mal supportato .

Problemi correlati