2012-12-20 16 views
36

Jak wybrać wszystkie dzieci w tabeli, z wyjątkiem pierwszego i ostatniego? Próbowałem, ale kończy się wybierając wszystkie dzieci, które nie są przede wszystkim dzieciom, które nie są ostatni, który kończy się wszystkie dzieci:Jak wybrać wszystkie dzieci z wyjątkiem pierwszych i ostatnich z selektorami CSS?

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

Chcę, aby wszystkie dzieci, które nie są ani pierwsze, ani ostatni, ubiegły, zeszły. Jak mogę to zrobić?

+0

powiązane z tym: http://stackoverflow.com/questions/7403129/combining-not-selectors-in-css – Spudley

+1

Ten jest bardziej powiązany: http://stackoverflow.com/questions/10033299/is-there-any -stosować-określać-a-css-stenografować- all-elements-except-the-first-l (prawdopodobnie nawet dupe) – BoltClock

Odpowiedz

2

myślę, że to powinny pracować dla Ciebie:

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

Powiedział, że CSS, a nie jQuery. – Barmar

+0

Cóż, on jest smutnym selektorem CSS (którego używa jQuery). Ale biorąc pod uwagę składnię, którą napisał, punktem jest moot =). –

+0

Uwaga, jeśli używasz tego w CSS, nie jest to obsługiwane w niektórych starszych przeglądarkach. Rozważałbym oddanie wszystkich twoich pierwszych i ostatnich elementów "pierwszych" i "ostatnich" klas, jeśli to możliwe. –

3

Rozwiązanie jQuery jest w porządku, ale jeśli chcesz to zrobić w czystym CSS sugeruję aby stosować przepisy dla całej tabeli, a następnie resetowanie ich dla pierwszego i ostatniego dziecka. tj:

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

Myślę, że twoja odpowiedź jest najlepsza, ponieważ jest to przeglądarka, więc 7,8 (nadal aktualne), telefony Windows ze starymi tj. Obsługuje ją. – Serg

49

Użyj dwóch :not() selektory połączone, co odnosi się do elementów, które pasują do obu z nich, czyli elementów, które pasują żadne z selektorów stosowanych jako operandy :not():

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

@FrankV, źle zrozumiałeś inne pytanie i odpowiedź. Pytanie dotyczy połączonych selektorów ': not()', ale pyta, czy istnieje alternatywa. –

+0

Widzę dzięki ..... –

+1

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

Powiązane problemy