<tbody>: The TBODY Element

Last updated: 2026-10-13

<tbody>The TBODY Element

The table body wrapping data rows (tr); a table may have multiple tbody for grouping.

CategoryTables
Content ModelFlow content
Allowed ParentsAny element that accepts flow content
Content TagYes — requires closing </tbody> tag
StatusStandard

📝 Syntax

<tbody>
  <tr><td>...</td></tr>
</tbody>

▶ Example

Edit the code below and see the live result in the playground:

🌐 Browser Support

Browser ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
<tbody> ✓ v1 ✓ v12 ✓ v1 ✓ v1 ✓ v1
Supported in all major browsers
Tip: Browsers insert tbody implicitly if omitted; writing it explicitly helps scripting.

❓ FAQ

QCan there be multiple tbody elements?
AYes, and it is useful: group data rows into several <tbody> blocks to color groups via CSS or stripe groups with tbody:nth-of-type(). Each tbody is an independent row group in the DOM.
QWhy does tbody always appear in the DOM?
AThe HTML parser requires table rows to belong to a row group, so omitting <tbody> makes the browser insert an implicit one. That is why table children in JS are tbody nodes, not tr — the DOM does not always mirror the source.
QDoes the order of tbody, thead, and tfoot matter?
AWrite thead → tbody → tfoot in visual order. Historically tfoot could come first (so streaming renders got the footer early), but modern standards follow visual order. The browser sorts groups into place in the DOM, yet writing them correctly beats relying on the parser.
More case studies coming soon — check back later.

📚 Related Tutorials

Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏