Làm thế nào để chọn TD đầu tiên và cuối cùng trong một hàng?


170

Làm thế nào bạn có thể chọn đầu tiên và cuối cùng TDliên tiếp?

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

Câu trả lời:


377

Bạn có thể sử dụng :first-child:last-childbộ chọn giả:

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

Điều này sẽ hoạt động trong tất cả các trình duyệt chính, nhưng IE7 có một số vấn đề khi các yếu tố được thêm động (và nó sẽ không hoạt động trong IE6).


và nếu bạn muốn chọn con thứ ba og thứ hai thì sao?
clarkk

2
và sự khác biệt giữa tr > tdtr td?
clarkk

Quy tắc sau đây đặt kiểu của tất cả các phần tử P là con của BODY: body> P {line-height: 1.3} Bạn có thể xem tại: w3.org/TR/CSS2/selector.html#child-selector (cùng trang được đăng bởi James)
Francesco

4
@clarkk - Chỉ >chọn trẻ em trực tiếp. Không có nó, tất cả con cháu (ví dụ con của trẻ em) sẽ được chọn. Để chọn con thứ 2 hoặc thứ 3, hãy nhìn vào nth-childbộ chọn giả.
James Allardice

@BoltClock Tôi đã thấy một lần giải pháp của bạn cho vấn đề này bằng cách sử dụng +. đại loại như thế tr td + td + .... +td nhưng nếu tôi không biết tôi có bao nhiêu td thì sao?
Royi Namir

19

Bạn có thể sử dụng đoạn mã sau:

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

Sử dụng các lớp giả sau:

: First-child có nghĩa là "chọn phần tử này nếu nó là con đầu tiên của cha mẹ".

: last-child có nghĩa là "chọn phần tử này nếu nó là con cuối cùng của cha mẹ".

Chỉ các nút phần tử (thẻ HTML) bị ảnh hưởng, các lớp giả này bỏ qua các nút văn bản.


15

Bạn có thể sử dụng : con đầu tiên: con cuối cùng pseudo-selectors :

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

Hoặc bạn có thể sử dụng cách khác như

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

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

Cả hai cách đều hoạt động hoàn hảo


2

Nếu bạn sử dụng sass (scss), bạn có thể sử dụng đoạn mã sau:

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

2

Nếu hàng chứa một số thẻ hàng đầu (hoặc dấu) thtrước thì tdbạn nên sử dụng :first-of-typevà các :last-of-typebộ chọn. Mặt khác, đầu tiên tdsẽ không được chọn nếu nó không phải là phần tử đầu tiên của hàng.

Điều này mang lại:

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

1
bạn đã tiết kiệm thời gian của tôi, tôi đang sử dụng đứa con cuối cùng không hoạt động nhưng giải pháp của bạn đã hoạt động hoàn hảo
Mirza Obaid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.