2012-03-13 15 views
5

Ho una lista di link e sto usando il seguente codice di mettere una parola dopo ogni elemento link:È possibile combinare le pseudo classi css3: after e: lastchild?

a:after {content: "eg"} 

Tuttavia, non voglio il contenuto di venire dopo l'ultimo elemento della lista, quindi idealmente vorrei dire qualcosa come

a:last-child:after {content: ""} 

ma questo è spogliare il contenuto che viene dopo tutti i collegamenti. C'è comunque un modo di combinare questi due? Se c'è e si può spiegare cosa sta succedendo esattamente Vorrei davvero grato :)

Grazie

+1

': AFTER' è un Pseudo-elemento CSS2, non una pseudo-classe CSS3 Avremo bisogno di vedere il tuo codice HTML per trovare il giusto selettore da usare – BoltClock

risposta

6

Prova questa:

HTML :

<ul> 
<li><a href="#">Check this out</a></li> 
<li><a href="#">Check this out</a></li> 
<li><a href="#">Check this out</a></li> 
</ul> 

CSS:

a:after {content: "what what"} 
li:last-child > a:after {content: ""}​ 

Ecco un Fiddle dimostrare.

Inoltre, tenere a mente, se si dispone di molti utenti che usano IE7 e IE8, la classe :after pseudo non funziona in IE7 e al di sotto, e la classe :last-child pseudo non funziona in IE8 e al di sotto. Vedi qui: http://www.quirksmode.org/css/contents.html

+0

Grazie, ha funzionato perfettamente! – nick501414

1

farei che con una combinazione di :not, :last-child e :after. Con :not(:last-child) si seleziona ogni link tranne l'ultimo: http://jsfiddle.net/2CS9G/

a:not(:last-child):after{ 
    content: "--"; 
} 

Se i a -tag sono in una lista (ul): http://jsfiddle.net/2CS9G/2/

li:not(:last-child) a:after{ 
    content: "--"; 
} 
+0

Nessun supporto per IE <9. Non c'è bisogno di farlo, anche se è un fantastico selettore. – Maroshii

+1

@Maroshii: cosa ha a che fare questo con il supporto del browser? (Nota a margine, se l'OP sta già usando ': last-child' probabilmente non è interessato al supporto del browser.) – BoltClock

+0

Non sapevo nulla di" non "! Grazie, dovrei fare un po 'meno codice in futuro. – nick501414

0

Funziona per me>link

potrebbe essere che si è dimenticato di aggiungere display: block al a.

+0

Gli elementi in linea possono avere generato contenuto. – BoltClock

+0

Sto usando il blocco di visualizzazione ma devo sovrascrivere qualcosa da qualche parte. Grazie per il testa a testa! – nick501414

1

La seguente combinazione di selezione ha funzionato per me:

#myObj ul li:last-child::after { . . . } 
Problemi correlati