Bagaimana cara memilih TD ​​pertama dan terakhir berturut-turut?

170

Bagaimana Anda bisa memilih yang pertama dan yang terakhir TDberturut-turut?

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

Jawaban:

377

Anda dapat menggunakan :first-childdan :last-childpseudo-selektor:

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

Ini harus bekerja di semua browser utama, tetapi IE7 memiliki beberapa masalah ketika elemen ditambahkan secara dinamis (dan itu tidak akan berfungsi di IE6).

James Allardice
sumber
dan bagaimana jika Anda ingin memilih anak ketiga dan ketiga?
clarkk
2
dan apa perbedaan antara tr > tddan tr td?
clarkk
Aturan berikut menetapkan gaya semua elemen P yang merupakan anak-anak BODY: body> P {line-height: 1.3} Anda dapat melihat di: w3.org/TR/CSS2/selector.html#child-selectors (halaman yang sama diposting oleh James)
Francesco
4
@clarkk - Memilih >anak langsung saja. Tanpa itu, semua keturunan (misalnya anak-anak anak-anak) akan dipilih. Untuk memilih anak ke-2 atau ke-3, lihat ke nth-childpemilih-semu.
James Allardice
@BoltClock Saya pernah melihat solusi Anda untuk masalah ini menggunakan +. sesuatu seperti tr td + td + .... +td tetapi bagaimana jika saya tidak tahu berapa banyak yang saya miliki?
Royi Namir
19

Anda dapat menggunakan cuplikan berikut:

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

Menggunakan kelas pseudo berikut:

: first-child berarti "pilih elemen ini jika itu adalah anak pertama dari induknya".

: last-child berarti "pilih elemen ini jika itu adalah anak terakhir dari induknya".

Hanya elemen node (tag HTML) yang terpengaruh, kelas pseudo ini mengabaikan node teks.

Francesco
sumber
15

Anda dapat menggunakan : anak pertama dan : anak terakhir pseudo-selectors :

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

Atau Anda bisa menggunakan cara lain seperti

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

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

Keduanya bekerja dengan sempurna

Ajay Gupta
sumber
2

Jika Anda menggunakan sass (scss) Anda dapat menggunakan potongan berikut:

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

Jika baris berisi beberapa thtag yang mengarah (atau tertinggal) sebelum tdAnda harus menggunakan :first-of-typedan :last-of-typepenyeleksi. Kalau tidak, yang pertama tdtidak akan dipilih jika itu bukan elemen pertama dari baris.

Ini memberi:

td:first-of-type, td:last-of-type {
    /* styles */
}
Christopher Chiche
sumber
1
Anda menghemat waktu saya menggunakan anak terakhir yang tidak berfungsi tetapi solusi Anda berfungsi dengan baik
Mirza Obaid