Bird
Raised Fist0
HTMLmarkup~5 mins

Cell merging in HTML

Choose your learning style10 modes available
Introduction

Cell merging helps combine two or more table cells into one bigger cell. It makes tables easier to read and organize.

When you want a header to span across multiple columns in a table.
When you need to group related data under one label in a table.
When you want to create a table layout with cells that cover multiple rows or columns.
When you want to reduce repeated information in adjacent cells.
Syntax
HTML
<td colspan="number"> ... </td>
<td rowspan="number"> ... </td>
colspan merges cells horizontally (across columns).
rowspan merges cells vertically (down rows).
Examples
This cell covers two columns side by side.
HTML
<td colspan="2">Merged across 2 columns</td>
This cell covers three rows vertically.
HTML
<td rowspan="3">Merged down 3 rows</td>
A header cell that stretches across four columns.
HTML
<th colspan="4">Header spanning 4 columns</th>
Sample Program

This table shows how to merge cells horizontally and vertically. The header spans all three columns using colspan="3". The "Apples" cell merges two rows vertically with rowspan="2". The "Oranges" row merges two columns horizontally with colspan="2".

HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Cell Merging Example</title>
  <style>
    table {
      border-collapse: collapse;
      width: 80%;
      margin: 1rem auto;
      font-family: Arial, sans-serif;
    }
    th, td {
      border: 1px solid #333;
      padding: 0.75rem;
      text-align: center;
    }
    th {
      background-color: #f0f0f0;
    }
  </style>
</head>
<body>
  <main>
    <h1 style="text-align:center;">Cell Merging in Tables</h1>
    <table aria-label="Example table showing cell merging">
      <thead>
        <tr>
          <th colspan="3">Monthly Sales Report</th>
        </tr>
        <tr>
          <th>Product</th>
          <th>January</th>
          <th>February</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td rowspan="2">Apples</td>
          <td>120</td>
          <td>135</td>
        </tr>
        <tr>
          <td>130</td>
          <td>140</td>
        </tr>
        <tr>
          <td>Oranges</td>
          <td colspan="2">200 (combined sales)</td>
        </tr>
      </tbody>
    </table>
  </main>
</body>
</html>
OutputSuccess
Important Notes

Always make sure the total number of columns in each row matches the table structure after merging.

Use colspan for horizontal merging and rowspan for vertical merging.

Screen readers understand merged cells better when you use semantic tags like <th> for headers.

Summary

Cell merging combines multiple table cells into one bigger cell.

Use colspan to merge cells across columns.

Use rowspan to merge cells across rows.

Practice

(1/5)
1. What does the colspan attribute do in an HTML table?
easy
A. It merges cells horizontally across columns.
B. It merges cells vertically across rows.
C. It changes the color of a cell.
D. It adds a border around a cell.

Solution

  1. Step 1: Understand the purpose of colspan

    The colspan attribute is used in a table cell to make it span across multiple columns horizontally.
  2. Step 2: Compare with rowspan

    rowspan merges cells vertically across rows, so it is different from colspan.
  3. Final Answer:

    It merges cells horizontally across columns. -> Option A
  4. Quick Check:

    colspan = horizontal merge [OK]
Hint: Remember: colSpan = column span (horizontal) [OK]
Common Mistakes:
  • Confusing colspan with rowspan
  • Thinking colspan changes cell style
  • Assuming colspan merges rows
2. Which of the following is the correct syntax to merge two columns in a table cell?
easy
A. <td rowspan='2'>Merged</td>
B. <td merge='2'>Merged</td>
C. <td colspan='2'>Merged</td>
D. <td span='2'>Merged</td>

Solution

  1. Step 1: Identify the correct attribute for column merging

    The attribute to merge columns is colspan, so it should be used as colspan='2'.
  2. Step 2: Check syntax correctness

    <td colspan='2'>Merged</td> uses the correct attribute and syntax: <td colspan='2'>Merged</td>. Other options use wrong attributes or invalid syntax.
  3. Final Answer:

    <td colspan='2'>Merged</td> -> Option C
  4. Quick Check:

    Correct attribute for columns = colspan [OK]
Hint: Use colspan='number' to merge columns [OK]
Common Mistakes:
  • Using rowspan instead of colspan
  • Using non-existent attributes like merge or span
  • Missing quotes around attribute value
3. What will be the visual result of this HTML snippet?
<table border='1'>
  <tr>
    <td rowspan='2'>A</td>
    <td>B</td>
  </tr>
  <tr>
    <td>C</td>
  </tr>
</table>
medium
A. All cells appear in a single row.
B. Cell 'A' spans two rows vertically, cells 'B' and 'C' are side by side horizontally.
C. Cell 'A' spans two columns horizontally, cells 'B' and 'C' are below 'A'.
D. Cell 'A' spans two rows vertically, cells 'B' and 'C' are stacked vertically next to 'A'.

Solution

  1. Step 1: Understand rowspan effect

    The rowspan='2' on cell 'A' makes it cover two rows vertically in the first column.
  2. Step 2: Analyze placement of cells 'B' and 'C'

    Cell 'B' is in the first row, second column; cell 'C' is in the second row, second column. They stack vertically next to the tall 'A' cell.
  3. Final Answer:

    Cell 'A' spans two rows vertically, cells 'B' and 'C' are stacked vertically next to 'A'. -> Option D
  4. Quick Check:

    rowspan = vertical merge [OK]
Hint: Rowspan stacks cells vertically beside merged cell [OK]
Common Mistakes:
  • Thinking rowspan merges columns horizontally
  • Assuming cells B and C are side by side horizontally
  • Confusing rowspan with colspan
4. Identify the error in this table code that tries to merge cells across two columns:
<table border='1'>
  <tr>
    <td colspan='2'>Merged</td>
    <td>Cell 3</td>
  </tr>
  <tr>
    <td>Cell 4</td>
    <td>Cell 5</td>
  </tr>
</table>
medium
A. Second row has only two cells but first row has three columns, causing layout mismatch.
B. The colspan attribute value should be '3' instead of '2'.
C. The colspan attribute is not allowed on td elements.
D. The table is missing a thead section.

Solution

  1. Step 1: Count columns in first row

    The first row has a cell with colspan='2' plus one more cell, so total columns = 2 + 1 = 3.
  2. Step 2: Count columns in second row

    The second row has only two cells, so only 2 columns, which causes a mismatch in table layout.
  3. Final Answer:

    Second row has only two cells but first row has three columns, causing layout mismatch. -> Option A
  4. Quick Check:

    Column count must match in all rows [OK]
Hint: Ensure all rows have same total columns after colspan [OK]
Common Mistakes:
  • Ignoring column count mismatch
  • Thinking colspan value must match total columns
  • Believing colspan is invalid on <td>
5. You want to create a table where the top-left cell spans 2 rows and 3 columns. Which is the correct way to write this cell?
hard
A. <td rowspan='3' colspan='2'>Top Left</td>
B. <td rowspan='2' colspan='3'>Top Left</td>
C. <td colspan='2' rowspan='3'>Top Left</td>
D. <td colspan='3'>Top Left</td>

Solution

  1. Step 1: Identify correct rowspan and colspan values

    The cell should span 2 rows vertically and 3 columns horizontally, so rowspan='2' and colspan='3' are needed.
  2. Step 2: Check attribute order and correctness

    Attributes can be in any order, but <td rowspan='2' colspan='3'>Top Left</td> correctly uses rowspan='2' and colspan='3'. Other options have swapped or incorrect values.
  3. Final Answer:

    <td rowspan='2' colspan='3'>Top Left</td> -> Option B
  4. Quick Check:

    Rowspan = rows, colspan = columns [OK]
Hint: Use rowspan for rows, colspan for columns together [OK]
Common Mistakes:
  • Swapping rowspan and colspan values
  • Using wrong numbers for spans
  • Omitting one of the attributes
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