2012-12-20 19 views
36

Come selezionerei tutti i bambini in una tabella tranne il primo e l'ultimo? Ho provato questo, ma finisce per la selezione di tutti i bambini che non sono in primo luogo e tutti i bambini che non sono durano, che finisce per essere a tutti i bambini:Come selezionare tutti i bambini tranne il primo e l'ultimo con selettori CSS

table.programs tr td:not(:first-child), table.programs tr td:not(:last-child) { 
} 

che voglio a tutti i bambini che non sono né primo né ultimo. Come posso fare questo?

+0

correlati a questo: http://stackoverflow.com/questions/7403129/combining-not-selectors-in-css – Spudley

+1

Questo è più strettamente correlato: http://stackoverflow.com/questions/10033299/is-there-any -way-to-indicare-a-css-shorthand- for-all-elements-except-the-first-l (probabilmente anche un dupe) – BoltClock

risposta

2

credo che questo dovrebbe funzionare per voi:

table.programs tr td:not(:first-child,:last-child) 
+0

Ha detto CSS, non jQuery. – Barmar

+0

Beh, ha tristi selettori CSS (che usa anche jQuery). Ma considerando la sintassi che ha pubblicato, il punto è moot =). –

+0

Nota, se lo si utilizza in CSS, questo non è supportato in alcuni browser meno recenti. Prenderò in considerazione la possibilità di dare tutti i primi e gli ultimi elementi 'prima' e' ultima', se possibile. –

3

La soluzione jQuery va bene, ma se si vuole fare in puro CSS io suggerirei di applicare le regole per l'intera tabella e poi ripristina per il primo e l'ultimo figlio. Per esempio:

table.programs tr td { 
    /* your rules here */ 
} 

table.programs tr:first-child td:first-child, 
table.programs tr:last-child td:last-child { 
    /* reset your rules here */ 
} 

jsFiddle demo

+0

Penso che la tua risposta sia la migliore, perché è cross-browser, quindi 7,8 (ancora attuale), i telefoni Windows con vecchi supporti lo supportano. – Serg

49

Uso due :not() selettori combinati, riferendosi quindi elementi che hanno entrambi, ossia elementi che corrispondono a nessuno dei selettori utilizzati come operandi :not():

table.programs td:not(:first-child):not(:last-child) 
+0

@FrankV, hai frainteso l'altra domanda e la sua risposta. La domanda si riferisce ai selettori concatenati ': not()' ma chiede se esiste un'alternativa. –

+0

Vedo grazie ..... –

+1

td + td: not (: last-child) – VisWebsoft

Problemi correlati