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 */
}

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).


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.


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


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*/
   }
 }

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 */
}

1
Anda menghemat waktu saya menggunakan anak terakhir yang tidak berfungsi tetapi solusi Anda berfungsi dengan baik
Mirza Obaid
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.