Selettore CSS per diverso dal primo e dall'ultimo figlio


105

Sto realizzando un sito web molto avanzato. La mia domanda: è possibile selezionare tutti gli altri figli eccetto :first-childe :last-child? So che esiste un :not()selettore ma non funziona con più di uno non tra parentesi. Questo è quello che ho:

#navigation ul li:not(:first-child, :last-child) {
    background: url(images/UISegmentBarButtonmiddle@2x.png);
    background-size: contain;
}

Sei molto coraggioso nell'usare questo. Tieni presente che funzionerà solo sui browser moderni e sicuramente non funzionerà sull'anti-browser che tutti utilizzano.
sbarazzarsi del

2
@Radu: "Sto creando un sito web molto avanzato" Nessuna sorpresa lì ...
BoltClock

1
@BoltClock, giusto, sto solo dicendo ... Parola di avvertimento. Ma comunque, se l'obiettivo è iOS Safari come suggerisce il nome dell'immagine, allora dovrebbe essere sicuro.
sbarazzarsi del

1
Ora vedo il motivo per cui questa domanda sembra così familiare ... stackoverflow.com/questions/7403129/combining-not-selectors
BoltClock

"anti-Browser"? È il nuovo Google Ultron di cui sento parlare?
Jonathan Dumaine

Risposte:


262

Prova #navigation ul li:not(:first-child):not(:last-child).


IL TUO FANTASTICO! Grazie!
Daniel

1
rofl, la stupidità di me not()anche provarlo prima di cercare su Google: P genius
SidOfc

1
È sbagliato: not (A and B)non è uguale a (not A) and (not B), sarebbe piuttosto (not A) or (not B). Non funziona.
Hibou57

2
No, quello che ha detto Salman Abbas è giusto. Stai pensando alla virgola; #navigation ul li: not (: first-child), #navigation ul li: not (: last-child)
user847074

20

Certo che funzionerà, devi solo usare due selettori "non".

#navigation ul li:not(:first-child):not(:last-child) {

Continuerà su tutta la linea dopo il primo, dicendo "non il primo figlio" e "non l'ultimo figlio".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.