Кілька <thead> / <tbody> у таблиці Дійсне?


82

Уявіть собі список подібних списків:

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

Забувши цілий аргумент "таблиці призначені для даних не для проектування", я хотів відобразити одну таблицю для listі мати окрему <thead>та <tbody>для кожного запису в list.

Чи це технічно обґрунтовано? Це працює в браузері, але мої почуття павука мурахають на цьому .


1
Ви можете точно мати кілька тіл, мені довелося б перевірити специфікацію, щоб побачити про теад.
Kevin B

2
@KevinB: IIRC щонайбільше одна тема і один tfoot: w3.org/TR/html-markup/table.html#table
Зета

1
@unor Моє питання пов'язане з декількома <thead>і <tfooter>елементів, а НЕ <tbody>. Вони не однакові і продиктовані окремими правилами.
AlbertEngelB

@ Dropped.on.Caprica: Ах, правильно, мені не вистачало, що ви також хотіли кілька thead елементів. Я відкликав голосування.
unor

Відповіді:


120

Ви не можете мати стільки ж <tbody>елементів , як ви хочете, але не більше ніж один кожен з <thead>і <tfoot>. Довідково :

Модель вмісту:

У такому порядку: необов’язково елемент підпису, за яким слідує нуль або більше елементів colgroup, за яким необов’язково додається елемент thead, за яким слід або нуль, або більше елементів tbody, або один або більше елементів tr, за яким необов’язково додається елемент tfoot , необов’язково змішаний з одним або більше елементів, що підтримують сценарій.


І ви можете використовувати th scope=rowgroupвсередині регулярного trдля опису кожного tbody. Див. "Приклад" .
CletusW

12

Допускається щонайбільше один theadі один , тому не слід створювати додаткові заголовки. Зрештою in в надає значення вашим стовпцям, наприклад, "час доби", "температура", "кількість котів, які зараз горять".tfoot ththead

Якщо записи у вашому списку пов’язані, вони повинні знаходитись в одній таблиці, і ви повинні надати відповідний заголовок для відображення цього відношення.

Якщо записи насправді не пов’язані між собою, вам слід надати одну таблицю для кожного з них. Ви все ще можете застосувати однаковий CSS для кожної таблиці, щоб отримати гарний результат.


5
"Якщо записи у вашому списку пов'язані, вони повинні знаходитись в одній таблиці, і ви повинні надати відповідний заголовок для відображення цього відношення" - Я думаю, що повторення одного і того ж заголовка у дуже довгій таблиці іноді було б бажаним, тому користувач не потрібно прокручувати назад до початку, щоб пам’ятати, якими є стовпці. Звичайно, для цього є й інші рішення (наприклад, JavaScript використовувати "липкий" заголовок таблиці або CSS для елементів рядків таблиці, щоб зробити його візуально іншим, ніж інші рядки).
Майк,

5

Я вважаю, що це просто як idатрибути. Вони мають бути унікальними, але насправді ви можете повторно використовувати їх на тій же сторінці, і все одно можете вибрати. Тим не менш, те, що це можна зробити, не означає, що це потрібно робити.

Я б рекомендував проти цього.


3
Немає нічого поганого в тому, щоб мати більше одного <tbody>, але відповідно до специфікації може бути лише один <thead>і один <tfoot>.
Пойнті

З того, що я можу зрозуміти, він взагалі не пропонував це робити. Тільки кажучи, що це працювало в браузері?
AlbertEngelB

@Sebas Перше речення дає зрозуміти, що ви можете додавати більше, ніж on, як і id, але не слід.
Джастін

@Sebas Краще? Іноді те, що в моїй голові, стає зрозумілішим, ніж те, що я записав: S
Джастін

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