Tables help organize information in rows and columns, like a grid. This makes data easy to read and compare.
Table rows and columns in HTML
<table> <tr> <td>Cell 1</td> <td>Cell 2</td> </tr> <tr> <td>Cell 3</td> <td>Cell 4</td> </tr> </table>
<table> starts the table.
<tr> creates a row, and <td> creates a cell (column) inside that row.
<table> <tr> <td>Apple</td> <td>Red</td> </tr> <tr> <td>Banana</td> <td>Yellow</td> </tr> </table>
<th> for header cells to label columns.<table> <tr> <th>Name</th> <th>Age</th> </tr> <tr> <td>Alice</td> <td>30</td> </tr> <tr> <td>Bob</td> <td>25</td> </tr> </table>
This code creates a simple table with three rows of fruits and their colors. It uses <th> for headers and <td> for data cells. The table has borders and spacing for clarity. The aria-label helps screen readers understand the table's purpose.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Simple Table</title> <style> table { border-collapse: collapse; width: 100%; max-width: 400px; margin: 1rem auto; font-family: Arial, sans-serif; } th, td { border: 1px solid #333; padding: 0.5rem 1rem; text-align: left; } th { background-color: #f0f0f0; } </style> </head> <body> <main> <h1>Fruit Colors</h1> <table aria-label="Fruit colors table"> <tr> <th>Fruit</th> <th>Color</th> </tr> <tr> <td>Apple</td> <td>Red</td> </tr> <tr> <td>Banana</td> <td>Yellow</td> </tr> <tr> <td>Grapes</td> <td>Purple</td> </tr> </table> </main> </body> </html>
Always use <th> for headers to help people understand the table.
Use aria-label or caption to describe the table for screen readers.
Tables should be simple and clear for easy reading on all devices.
Tables organize data in rows (<tr>) and columns (<td> or <th>).
Use headers (<th>) to label columns clearly.
Keep tables simple and accessible for everyone.
Practice
Solution
Step 1: Understand table structure
A table is made of rows and columns. Rows group cells horizontally.Step 2: Identify the row tag
The<tr>tag defines a table row, while<td>and<th>define cells inside rows.Final Answer:
<tr> -> Option AQuick Check:
Row tag = <tr> [OK]
- Confusing <td> as row tag
- Using <th> for rows instead of headers
- Using <table> as row tag
Solution
Step 1: Know header cell tags
Table headers use<th>tags to label columns or rows.Step 2: Check the options
Only<th>Header</th>uses<th>correctly for a header cell.Final Answer:
<th>Header</th> -> Option DQuick Check:
Headers use <th> tags [OK]
- Using <td> for headers
- Using <tr> or <table> as cells
- Missing closing tags
<table>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
<tr>
<td>Alice</td>
<td>30</td>
</tr>
</table>Solution
Step 1: Analyze the table structure
The first row uses<th>for headers 'Name' and 'Age'. The second row uses<td>for data 'Alice' and '30'.Step 2: Understand rendering
This creates a table with two columns labeled 'Name' and 'Age', and one data row with 'Alice' and '30'.Final Answer:
A table with two columns labeled 'Name' and 'Age', and one row with 'Alice' and '30'. -> Option CQuick Check:
Headers + data rows = labeled table [OK]
- Thinking <th> cannot be inside <tr>
- Confusing table with list
- Assuming one column only
<table>
<tr>
<td>Item 1</td>
<tr>
<td>Item 2</td>
</tr>
</table>Solution
Step 1: Check row tags
The first<tr>is opened but not closed before the second<tr>starts.Step 2: Confirm correct nesting
Each<tr>must have a matching closing</tr>. Here, the first row is missing its closing tag.Final Answer:
Missing closing tag for the first <tr>. -> Option BQuick Check:
Everyneeds a closing [OK]
- Ignoring missing closing tags
- Confusing <td> and <th> errors
- Assuming table tag is unclosed
Solution
Step 1: Identify header row requirements
The first row should use<th>tags for all three headers to label columns.Step 2: Check each option
<table> <tr> <th>Product</th> <th>Price</th> <th>Stock</th> </tr> </table>correctly uses<th>inside a<tr>for all headers.<table> <tr> <td>Product</td> <td>Price</td> <td>Stock</td> </tr> </table>uses<td>which is for data cells, not headers.<table> <th>Product</th> <th>Price</th> <th>Stock</th> </table>
places<th>directly inside<table>without a row.<table> <tr> <th>Product</th> <td>Price</td> <td>Stock</td> </tr> </table>mixes<th>and<td>in the header row, which is incorrect.Final Answer:
<pre><table> <tr> <th>Product</th> <th>Price</th> <th>Stock</th> </tr> </table></pre> -> Option AQuick Check:
Headers = all <th> in a <tr> [OK]
- Using <td> for headers
- Placing <th> outside <tr>
- Mixing <th> and <td> in header row
Ready to prove it?
Pass the test and this pattern moves unknown
