2013-04-22 39 views
60

Hãy tưởng tượng một danh sách liệt kê tương tự như sau:Nhiều <thead>/<tbody> trong Bảng hợp lệ?

var list = [ 
    { name: 'group1', 
    items: [ 1, 2, 3, 4, 5 ] 
    }, 
    { name: 'group2', 
    items: [ 1, 2, 3, 4, 5 ] 
    }, 
    etc... 
] 

Bây giờ quên cả "bảng được cho dữ liệu không thiết kế" lập luận, tôi muốn để hiển thị một bảng duy nhất cho list và có một riêng biệt <thead><tbody> cho mỗi mục nhập trong list.

Điều này có hợp lệ về mặt kỹ thuật không? Điều này hoạt động trong trình duyệt, nhưng là spider senses are tingling on this one của tôi.

+1

Bạn chắc chắn có thể có nhiều tbodies, tôi phải kiểm tra thông số kỹ thuật để xem về thead. –

+2

@KevinB: IIRC nhiều nhất một bước và một tfoot: http://www.w3.org/TR/html-markup/table.html#table – Zeta

+1

@unor Câu hỏi của tôi phải làm với nhiều '' và ' 'các phần tử, không phải là ''. Chúng không giống nhau và được quyết định bởi các quy tắc riêng biệt. –

Trả lời

93

Bạn có thể có nhiều thành phần <tbody> tùy thích, nhưng không quá một phần tử <thead><tfoot>. Reference:

Nội dung mô hình:

Trong lệnh này: tùy chọn một yếu tố chú thích, tiếp bởi zero hoặc nhiều yếu tố colgroup, theo tùy chọn bởi một yếu tố thead , tiếp theo là một trong hai số không hay nhiều các phần tử tbody hoặc một hoặc nhiều phần tử tr, theo tùy chọn bởi phần tử tfoot, tùy chọn được trộn lẫn với một hoặc nhiều thành phần hỗ trợ tập lệnh.

+0

Cảm ơn câu trả lời. BTW liên kết bị hỏng ngay bây giờ. –

+0

@Accountant م: liên kết cố định và câu trả lời được cập nhật để phản ánh tiêu chuẩn mới nhất, cảm ơn! – Jon

4

Tôi coi nó giống như thuộc tính id. Chúng được cho là duy nhất, nhưng bạn thực sự có thể sử dụng lại nó trong cùng một trang và bạn vẫn có thể chọn nó. Điều đó nói rằng, chỉ vì nó có thể được thực hiện không có nghĩa là nó nên được thực hiện.

Tôi khuyên bạn nên chống lại nó.

+3

Không có gì sai khi có nhiều hơn một '', nhưng theo thông số kỹ thuật, có thể chỉ có một ' 'và một' '. – Pointy

+0

Từ những gì tôi có thể nói, anh ấy không gợi ý làm điều đó chút nào. Chỉ cần nói nó làm việc trong trình duyệt? –

+0

@Sebas Câu đầu tiên là làm cho nó biết rằng bạn có thể thêm nhiều hơn, giống như id, nhưng bạn không nên. – Justin

8

Có tối đa thead và một tfootallowed, vì vậy bạn không nên tạo tiêu đề bổ sung. Sau khi tất cả các th trong một thead mang lại ý nghĩa cho các cột của bạn, như "thời gian trong ngày", "nhiệt độ", "số lượng mèo hiện đang cháy".

Nếu các mục trong danh sách của bạn có liên quan, tất cả chúng phải nằm trong cùng một bảng và bạn nên cung cấp tiêu đề phù hợp để hiển thị mối quan hệ đó.

Nếu các mục nhập thực sự không liên quan, bạn nên cung cấp một bảng duy nhất cho tất cả các mục đó. Bạn vẫn có thể áp dụng cùng một CSS trên mỗi bảng để có được kết quả tốt đẹp.

+3

"Nếu các mục trong danh sách của bạn có liên quan, tất cả chúng đều nằm trong cùng một bảng và bạn nên cung cấp tiêu đề phù hợp để hiển thị mối quan hệ đó" - Tôi nghĩ rằng lặp lại cùng một tiêu đề trong một bảng rất dài đôi khi sẽ được mong muốn người dùng không phải cuộn xuống đầu để ghi nhớ các cột là gì. Tất nhiên, có các giải pháp khác cho điều này (ví dụ: JavaScript sử dụng tiêu đề bảng "dính" hoặc CSS trên các phần tử hàng của bảng để làm cho nó khác biệt về mặt thị giác so với các hàng khác). – Mike

Các vấn đề liên quan