Bird
Raised Fist0
HTMLmarkup~5 mins

Table headers in HTML

Choose your learning style10 modes available
Introduction

Table headers help organize data by labeling columns or rows. They make tables easier to understand and navigate.

When you want to label columns in a data table, like names or dates.
When you need to describe rows for better clarity, such as categories or items.
When making tables accessible for screen readers to understand the structure.
When you want to style headers differently to highlight them visually.
When creating reports or schedules that need clear headings.
Syntax
HTML
<thead>
  <tr>
    <th>Header 1</th>
    <th>Header 2</th>
  </tr>
</thead>

The <th> tag defines a table header cell.

Headers are usually inside a <thead> section but can also appear in <tbody> or <tfoot>.

Examples
Simple table with column headers for Name, Age, and City.
HTML
<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Age</th>
      <th>City</th>
    </tr>
  </thead>
</table>
Headers used directly inside the table without <thead>.
HTML
<table>
  <tr>
    <th>Product</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>Apple</td>
    <td>$1</td>
  </tr>
</table>
Using scope attribute to specify if header is for a column or row, improving accessibility.
HTML
<table>
  <thead>
    <tr>
      <th scope="col">Date</th>
      <th scope="col">Event</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">2024-06-01</th>
      <td>Meeting</td>
    </tr>
  </tbody>
</table>
Sample Program

This example shows a simple table with headers for Name, Role, and Location. The headers have a green background and white text to stand out. The table is centered and easy to read.

HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Table Headers Example</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: #4CAF50;
      color: white;
    }
  </style>
</head>
<body>
  <main>
    <h1>Team Members</h1>
    <table>
      <thead>
        <tr>
          <th>Name</th>
          <th>Role</th>
          <th>Location</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Alice</td>
          <td>Developer</td>
          <td>New York</td>
        </tr>
        <tr>
          <td>Bob</td>
          <td>Designer</td>
          <td>London</td>
        </tr>
        <tr>
          <td>Charlie</td>
          <td>Manager</td>
          <td>Tokyo</td>
        </tr>
      </tbody>
    </table>
  </main>
</body>
</html>
OutputSuccess
Important Notes

Always use <th> for headers, not <td>, to help screen readers.

The scope attribute on <th> improves accessibility by clarifying if the header is for a row or column.

Use CSS to style headers differently so users can easily spot them.

Summary

Table headers label columns or rows to organize data clearly.

Use <th> tags inside <thead> or directly in rows.

Headers improve readability and accessibility for all users.

Practice

(1/5)
1. What is the main purpose of the <th> tag in an HTML table?
easy
A. To define a header cell that labels a column or row
B. To create a normal data cell in a table
C. To add a caption above the table
D. To merge multiple cells into one

Solution

  1. Step 1: Understand the role of <th>

    The <th> tag is used to create header cells in a table, which label columns or rows.
  2. Step 2: Differentiate from other tags

    The <td> tag creates normal data cells, not headers. Captions use <caption>, and merging cells uses colspan or rowspan.
  3. Final Answer:

    To define a header cell that labels a column or row -> Option A
  4. Quick Check:

    Table headers = <th> tag [OK]
Hint: Headers label columns or rows using <th> tags [OK]
Common Mistakes:
  • Confusing <th> with <td>
  • Thinking <th> merges cells
  • Using <caption> as header cells
2. Which of the following is the correct syntax to create a table header cell for a column named "Name"?
easy
A. Name
B. Name
C.
Name
D. Name

Solution

  1. Step 1: Identify the tag for header cells

    The correct tag for a table header cell is <th>.
  2. Step 2: Check the options

    <td> is for data cells, <header> is a page section tag, and <thead> groups header rows but does not create individual cells.
  3. Final Answer:

    <th>Name</th> -> Option D
  4. Quick Check:

    Header cell = <th> [OK]
Hint: Use <th> for header cells, not <td> or <header> [OK]
Common Mistakes:
  • Using <td> instead of <th>
  • Confusing <thead> with <th>
  • Using non-table tags like <header>
3. Given the following HTML snippet, what will be the visual effect of the <th> elements in most browsers?
<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Name</th>
      <th>Age</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Alice</td>
      <td>30</td>
    </tr>
  </tbody>
</table>
medium
A. The header cells will look the same as data cells
B. The header cells will be italic and left-aligned
C. The header cells will be bold and centered by default
D. The header cells will be hidden from view

Solution

  1. Step 1: Understand default browser styles for <th>

    Browsers typically render <th> cells with bold text and center alignment to distinguish headers.
  2. Step 2: Compare with data cells

    Data cells (<td>) are usually normal weight and left-aligned by default.
  3. Final Answer:

    The header cells will be bold and centered by default -> Option C
  4. Quick Check:

    <th> = bold + center [OK]
Hint: Headers appear bold and centered by default [OK]
Common Mistakes:
  • Thinking headers are italic
  • Assuming headers look like data cells
  • Believing headers are hidden
4. Identify the error in this table header code:
<table>
  <thead>
    <tr>
      <th>Product</td>
      <th>Price</th>
    </tr>
  </thead>
</table>
medium
A. The second header cell uses <th> instead of <td>
B. The first header cell closes with </td> instead of </th>
C. The <tr> tag is not closed
D. The <thead> tag is missing

Solution

  1. Step 1: Check tag consistency in header cells

    The first header cell starts with <th> but incorrectly closes with </td>, which is invalid.
  2. Step 2: Verify other tags

    The <thead> and <tr> tags are correctly used and closed. The second header cell uses <th> correctly.
  3. Final Answer:

    The first header cell closes with </td> instead of </th> -> Option B
  4. Quick Check:

    Matching tags for <th> = </th> [OK]
Hint: Match opening and closing tags exactly for <th> [OK]
Common Mistakes:
  • Mixing <th> and <td> tags
  • Forgetting to close <tr> or <thead>
  • Using <td> inside <thead>
5. You want to create a table where the first column uses header cells to label each row, and the top row uses header cells to label each column. Which is the correct way to do this?
hard
A. Col1Col2Row1Data1Data2
B. Col1Col2Row1Data1Data2
C. Col1Col2Row1Data1Data2
D. Col1Col2Row1Data1Data2

Solution

  1. Step 1: Use <th> for both column and row headers

    The top row headers and the first column headers should use <th> tags to indicate headers.
  2. Step 2: Check the provided options

    Col1Col2Row1Data1Data2 correctly uses <th> in the top row and first column. The empty <th> in the top-left corner aligns headers properly.
  3. Final Answer:

    Option A uses <th> for both row and column headers correctly -> Option A
  4. Quick Check:

    Row and column headers = <th> tags [OK]
Hint: Use <th> for headers in both top row and first column [OK]
Common Mistakes:
  • Using <td> for headers in the first column
  • Leaving top-left cell empty without <th>
  • Mixing <td> and <th> incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard