Bird
Raised Fist0
HTMLmarkup~10 mins

Cell merging in HTML - Browser Rendering Trace

Choose your learning style10 modes available
Render Flow - Cell merging
Read <table>
→Create TABLE node
↓
Read <tr>
→Create TR node as child
↓
Read <td>
→Create TD node as child
↓
Check colspan/rowspan
↓
Set cell span
↓
Close TD
↓
Close TR
↓
Close TABLE
↓
Calculate layout with merged cells
↓
Paint merged cells
↓
Composite final table
The browser reads the table structure, creates table rows and cells, then applies colspan and rowspan to merge cells visually before painting the table.
Render Steps - 3 Steps
Code Added:<table> element with two rows and three cells each
Before
No table visible
→
After
[TABLE]
  [TR]
    [TD] Cell 1 [TD] Cell 2 [TD] Cell 3
  [TR]
    [TD] Cell 4 [TD] Cell 5 [TD] Cell 6
The browser creates a table with two rows and three cells in each row, all cells separate and equal sized.
🔧 Browser Action:Creates DOM nodes for table, rows, and cells; calculates default cell layout
Code Sample
A table with the first row's first cell spanning two columns, merging two cells horizontally.
HTML
<table>
  <tr>
    <td colspan="2">Merged Cell</td>
    <td>Cell 3</td>
  </tr>
  <tr>
    <td>Cell 4</td>
    <td>Cell 5</td>
    <td>Cell 6</td>
  </tr>
</table>
HTML
table {
  border-collapse: collapse;
  width: 50%;
}
td {
  border: 1px solid black;
  padding: 0.5rem;
  text-align: center;
}
Render Quiz - 3 Questions
Test your understanding
After applying step 2, what visual change do you see in the first row?
AThe first cell spans two rows, merging vertically
BThe first cell spans two columns, merging horizontally
CAll cells become the same size
DThe table loses its borders
Common Confusions - 2 Topics
Why does colspan="2" make the cell wider but not taller?
Colspan merges cells horizontally across columns, so the cell stretches sideways but keeps the same row height. To merge vertically, use rowspan.
💡 colspan = horizontal merge; rowspan = vertical merge (see render_step 2)
Why do borders between merged cells sometimes look thicker or doubled?
Without border-collapse: collapse, borders from adjacent cells stack, making them look thicker. Using border-collapse: collapse merges borders into one line.
💡 Use border-collapse: collapse for clean merged cell borders (see render_step 3)
Property Reference
PropertyValue AppliedEffect on CellVisual ResultCommon Use
colspannumber (e.g., 2)Merges cells horizontallyCell spans multiple columnsCombine adjacent columns
rowspannumber (e.g., 2)Merges cells verticallyCell spans multiple rowsCombine adjacent rows
border-collapsecollapseBorders between cells mergeSingle border line between cellsCleaner table borders
border-collapseseparateBorders separate per cellDouble borders between cellsDefault border style
Concept Snapshot
Cell merging uses colspan and rowspan attributes. colspan merges cells horizontally across columns. rowspan merges cells vertically across rows. border-collapse: collapse merges borders for cleaner look. Merged cells take space of multiple cells visually.

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