2017-01-20 25 views
6

Potrzebuję wskazać ostatni element, jeśli jest nieparzysty.Wybierz element liczby nieparzystej tylko w ostatniej pozycji, a nie jako jedyne dziecko.

Powiedzmy, że mam 3 elementy. Chcę celować w trzeci element tylko dlatego, że jest ostatni i jest nieparzysty. Ale jeśli mam 1 element, nie chcę, aby ta zasada była stosowana, nawet jeśli w rzeczywistości jest ona nieparzysta, jak również.

1 2 3(target) 

1 2 3 4 5(target) 

1 2(don't target) 

1(don't target) 

Jak mogę to zrobić?

Po prostu chcę połączyć :nth-child(odd) i :not(:only-child) i tylko wtedy, gdy ma to zastosowanie.

Odpowiedz

-2

powinien zrobić magię, można nie stosować, jako selektor

target:not(:first-child):last-child { /*some magic css*/ } 
+0

: n-dziecko (nieparzyste): ostatnie dziecko: nie (: tylko dziecko) jako odpowiedź nad tobą. Thanks anyways! – Codehiker

10

myślę, to znaczy, że chce, aby wybrać element, jeśli

  • dziwne
  • ostatnim dzieckiem
  • nie tylko dziecko

Jest to dość proste, aby połączyć to wszystko:

:nth-child(odd):last-child:not(:only-child) { 
    color: blue; // or whatever 
} 
+1

Dzięki, stary, który działał jak czar! – Codehiker

5

Istnieje wiele sposobów, aby to zrobić, z różnym stopniem specyficzności w przypadku jest to ważne dla ciebie.

One, jak już sugerowane przez lonesomeday o swoistości (0, 3, 0) (3 Pseudoklasy z :not(:only-child) będąc równie specyficzne :only-child):

:nth-child(odd):last-child:not(:only-child) 

Innym, o swoistości (0, 2, 0):

:nth-child(2n+3):last-child 

w 2n + 3 wyrażenie rozpoczyna dopasowania od 3 dziecko dalej, eliminując potrzebę :not(:only-child). (Dla porównania słowo kluczowe "nieparzyste" jest równoważne 2n + 1.)

+0

Historia sprawdza się: Live Demo odpowiedzi BoltClock'a: http://codepen.io/anon/pen/XpMYeP –