HTML tr tag


The tr tag is an essential element in HTML, designed for creating table rows within a table structure. It stands for "table row" and is primarily used within <table> elements, nestled amongst <thead>, <tbody>, and <tfoot> sections. The tr tag organizes the data in rows rather than columns, and it serves as a container for <td> (table data) or <th> (table header) elements, which in turn define the actual data cells and headers within the row.


A typical use case of the tr tag involves creating a structured table in an HTML document. It is integral to displaying tabular data efficiently, allowing both developers and designers to arrange data in rows and columns for clear interpretation. To use the tr tag effectively, you must nest it within a <table> element. Each tr element then acts as a new row in the table, and can contain multiple <td> or <th> elements to define the cells within that row.


    <th>Header 1</th>
    <th>Header 2</th>
    <td>Data 1</td>
    <td>Data 2</td>

This snippet creates a table with two columns and two rows, where the first row serves as the table header.


The tr tag supports several standard HTML attributes that can modify its behavior and presentation. Some of the most commonly used attributes include:

  • bgcolor: Although it is not recommended due to being obsolete (CSS styling should be used instead), bgcolor was traditionally used to set the background color of a table row.
  • id: This global attribute provides a unique identifier for the row, which can be useful for styling or scripting purposes.
  • class: Also a global attribute, class allows you to define one or more classnames for the row, usually used for applying CSS styles.
  • style: The style attribute can directly apply CSS to the row, though using an external style sheet is generally preferred for maintainability.

It’s important to note that attributes like bgcolor are considered outdated and using CSS for styling is strongly encouraged. This aids in separating content from presentation, leading to cleaner code and easier maintenance.


Styling tr elements directly with CSS can enhance the visual presentation of table rows, making the data more readable and engaging. Common styling properties applied to tr include background-color, border, and hover effects. However, it’s worth noting that some older browsers have inconsistencies in how they apply styles directly to tr elements. As a workaround, styles can be applied to the <td> or <th> elements within the row.

CSS Example:

tr:nth-child(even) {
  background-color: #f2f2f2;

tr:hover {
  background-color: #ddd;

This CSS snippet highlights even rows in a different color and changes the background color of a row when it’s hovered over, enhancing the user’s ability to track and read individual rows in large data tables.


Accessibility is a crucial consideration when using the tr tag. Screen readers and other assistive technologies rely on the proper use of table elements to correctly interpret and navigate table data. To improve accessibility:

  • Use the <th> element within tr elements in the <thead> section for column headers, providing context for the data in the table.
  • Apply the scope attribute to <th> elements to specify whether they are headers for columns, rows, or groups of columns or rows.
  • Consider using the id and headers attributes to associate data cells (<td>) with header cells (<th>), especially in complex tables.


The tr tag is a building block for creating tables in HTML, facilitating the organized display of tabular data. While its use is straightforward, paying attention to attributes, styling, and accessibility considerations can significantly enhance the effectiveness and usability of tables in your web projects. As web standards evolve, it’s crucial to stay informed about best practices for using HTML elements, ensuring your content is both visually appealing and accessible to all users.