Tables in HTML
table, th, td, colspan, styling

HTML Tables: Displaying Data with Structure

When you need to organize data into rows and columns — think price lists, schedules, or reports — HTML tables are your go-to tool. They offer structure, clarity, and a way to present complex info with precision.

The Basics: table, tr, th, and td

Here are the essential tags:

  • <table> — starts the table
  • <tr> — defines a row (table row)
  • <th> — defines a header cell (bold + centered by default)
  • <td> — defines a standard data cell
<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>
</table>

And a basic css for table borders

table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}
HTML Table Basic Example

This structure is the heart of any HTML table.

Using colspan and rowspan

Sometimes you need a cell to stretch across multiple columns or rows. That’s where colspan and rowspan come in.

Example: colspan

<table>
  <tr>
    <th colspan="2">Fruits</th>
  </tr>
  <tr>
    <td>Apple</td>
    <td>Banana</td>
  </tr>
</table>
Table colspan

Example: rowspan

<table>
  <tr>
    <th rowspan="2">Fruit</th>
    <td>Apple</td>
  </tr>
  <tr>
    <td>Banana</td>
  </tr>
</table>
Table rowspan

colspan and rowspan help you group and align data intuitively.

Adding Borders and Basic Styling

By default, HTML tables are borderless. Add a border attribute for simple outlines:

<table border="1">
  <tr>
    <th>Item</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>Item 1</td>
    <td>$5</td>
  </tr>
</table>
Adding Borders and Basic Styling

For cleaner designs, it’s better to style tables with CSS — but this gives you quick control while learning.

Table Captions and Summary

Use <caption> to describe what the table is about. It helps accessibility and comprehension.

<table border="1">
  <caption>Fruit Color Table</caption>
  <tr>
    <th>Fruit</th>
    <th>Color</th>
  </tr>
  <tr>
    <td>Cherry</td>
    <td>Red</td>
  </tr>
</table>
Table Captions and Summary

The summary attribute is obsolete in HTML5, so modern accessibility prefers clear <caption> tags and semantic layout.

Full Example: Styled Table with Caption

<table border="1">
  <caption>Fruit Information</caption>
  <tr>
    <th>Name</th>
    <th>Color</th>
    <th>Taste</th>
  </tr>
  <tr>
    <td>Apple</td>
    <td>Red</td>
    <td>Sweet</td>
  </tr>
  <tr>
    <td>Banana</td>
    <td>Yellow</td>
    <td>Mild</td>
  </tr>
</table>
Full Example: Styled Table with Caption

Best Practices for Tables

  • Use <th> for headings — it improves accessibility
  • Keep layout simple for readability on smaller screens
  • Add captions when data needs context
  • Use CSS for advanced styling (covered in later lessons)

Summary

HTML tables are essential for displaying structured data — whether for product lists, schedules, or stats. You now know how to:

  • Create rows and cells with <tr>, <th>, and <td>
  • Merge cells using colspan and rowspan
  • Add borders for visibility
  • Describe your table with <caption>

Table Styling

To lean how to style the tables using CSS, refer Table Styling using CSS.

QUIZ

Question 1:Which tag is used to define a table row in HTML?

Question 2:The <td> tag is used to define a cell in the table that contains data, not a heading.

Question 3:Which tags are used in combination to construct a basic HTML table?

Question 4:What does the colspan attribute do in a table cell?

Question 5:The <caption> tag can be used inside a table to provide a title for the table.

Question 6:Which of the following are valid ways to style or describe a table?