Selektor CSS dla innego niż pierwsze dziecko i ostatnie dziecko


105

Robię bardzo zaawansowaną stronę internetową. Moje pytanie: czy można wybrać wszystkie inne dzieci oprócz :first-childi :last-child? Wiem, że jest:not() selektor, ale nie działa z więcej niż jednym nie w nawiasach. Oto co mam:

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

Jesteś bardzo odważny, aby tego użyć. Zwróć uwagę, że będzie działać tylko w nowoczesnych przeglądarkach i na pewno nie będzie działać w przeglądarce internetowej, której wszyscy używają.
pozbyć się

2
@Radu: „Tworzę bardzo zaawansowaną stronę internetową” Nie ma w tym nic dziwnego ...
BoltClock

1
@BoltClock, racja, tylko mówię ... Słowo ostrzeżenia. Ale tak czy inaczej, jeśli celem jest iOS Safari, jak sugeruje nazwa obrazu, to powinno być bezpieczne.
pozbyć się

1
Teraz widzę, dlaczego to pytanie wygląda tak znajomo ... stackoverflow.com/questions/7403129/combining-not-selectors
BoltClock

„anty-przeglądarka”? Czy to nowy Google Ultron, o którym ciągle słyszę?
Jonathan Dumaine

Odpowiedzi:


262

Spróbuj #navigation ul li:not(:first-child):not(:last-child).


JESTEŚ NIESAMOWITY! Dziękuję Ci!
Daniel,

1
rofl, głupota z mojej strony, not()nawet próbując tego przed googlowaniem: P genius
SidOfc

1
To źle: not (A and B)nie równa się (not A) and (not B), raczej tak byłoby (not A) or (not B). To nie działa.
Hibou57

2
Nie, to, co powiedział Salman Abbas, jest słuszne. Myślisz o przecinku; #navigation ul li: not (: first-child), #navigation ul li: not (: last-child)
user847074

20

Jasne, że zadziała, wystarczy użyć dwóch selektorów „nie”.

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

Będzie kontynuował linię po pierwszym, mówiąc „nie pierwsze dziecko” i „nie ostatnie dziecko”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.