Як вибрати першу та останню TD підряд?


170

Як можна вибрати перше та останнє TDпідряд?

tr > td[0],
tr > td[-1] {
/* styles */
}

Відповіді:


377

Ви можете використовувати :first-childі :last-childпсевдоселектори:

tr td:first-child,
tr td:last-child {
    /* styles */
}

Це має працювати у всіх основних браузерах, але в IE7 є деякі проблеми, коли елементи додаються динамічно (і він не працюватиме в IE6).


а що робити, якщо ви хочете вибрати другу третю дитину?
кларк

2
і в чому різниця між tr > tdі tr td?
кларк

Наступне правило встановлює стиль усіх елементів P, які є дітьми BODY: body> P {line-height: 1.3} Ви можете побачити на сайті: w3.org/TR/CSS2/selector.html#child-selectors (розміщена та сама сторінка від James)
Франческо

4
@clarkk - >Вибирає лише дітей, які прямі. Без нього будуть відібрані всі нащадки (наприклад, діти дітей). Щоб вибрати другу чи третю дитину, загляньте в nth-childпсевдоселектор.
James Allardice

@BoltClock Я колись бачив ваше рішення цієї проблеми, використовуючи +. щось на кшталт, tr td + td + .... +td але що, якщо я не знаю, скільки у мене є?
Рой Намір

19

Ви можете використовувати такий фрагмент:

  tr td:first-child {text-decoration: underline;}
  tr td:last-child {color: red;}

Використання наступних псевдокласів:

: first-child означає "вибрати цей елемент, якщо він є першою дитиною його батька".

: last-child означає "вибрати цей елемент, якщо він є останньою дитиною його батька".

Тільки вузлові елементи (HTML-теги) зачіпаються, ці псевдокласи ігнорують текстові вузли.


15

Ви можете використовувати : перша дитина та : остання дитина pseudo-selectors :

tr td:first-child{
    color:red;
}
tr td:last-child {
    color:green
}

Або ви можете скористатися іншим способом

// To first child 
tr td:nth-child(1){
    color:red;
}

// To last child 
tr td:nth-last-child(1){
    color:green;
}

Обидва способи чудово працюють


2

Якщо ви використовуєте sass (scss), ви можете використовувати такий фрагмент:

tr > td{
   /* styles for all td*/
   &:first-child{
     /* styles for first */ 
   }
   &:last-child{
    /* styles for last*/
   }
 }

2

Якщо рядок містить кілька провідних (або кінцевих) thтегів перед tdтобою, слід скористатися :first-of-typeі :last-of-typeселекторами. Інакше перший tdне буде обраний, якщо це не перший елемент рядка.

Це дає:

td:first-of-type, td:last-of-type {
    /* styles */
}

1
Ви заощадили мій час, я використовував останню дитину, яка не працювала, але ваше рішення спрацювало чудово
Mirza Obaid
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.