What if you could turn messy lists into neat, easy-to-read grids with just a few tags?
Why Table rows and columns in HTML? - Purpose & Use Cases
Imagine you want to show a list of your favorite fruits with their colors and prices in a neat grid on a webpage.
You try to line up the names, colors, and prices by typing spaces or using multiple lines.
Manually spacing text is tricky and breaks easily when you add or remove items.
The columns don't line up well on different screen sizes or devices.
It's hard to keep everything organized and readable.
Using table rows and columns lets you organize data in a clear grid.
Each row holds one item, and columns keep the same type of information aligned.
This makes your data easy to read and maintain, even if you add or remove rows.
Apple Red $1 Banana Yellow $0.5 Cherry Red $2
<table> <tr><td>Apple</td><td>Red</td><td>$1</td></tr> <tr><td>Banana</td><td>Yellow</td><td>$0.5</td></tr> <tr><td>Cherry</td><td>Red</td><td>$2</td></tr> </table>
Tables let you present structured data clearly and responsively, making it easy for everyone to understand.
Think of a restaurant menu online showing dishes, descriptions, and prices in neat rows and columns.
Manual spacing is unreliable and hard to maintain.
Table rows and columns organize data in a clear grid.
This improves readability and makes updates simple.
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
