Bird
Raised Fist0
HTMLmarkup~20 mins

Table rows and columns in HTML - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Table Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ rendering
intermediate
1:30remaining
What is the visual output of this HTML table?
Look at the HTML code below. How many rows and columns will the table display in the browser?
HTML
<table>
  <tr>
    <td>Apple</td>
    <td>Banana</td>
  </tr>
  <tr>
    <td>Cherry</td>
    <td>Date</td>
  </tr>
</table>
A2 rows and 2 columns
B2 rows and 1 column
C1 row and 2 columns
D1 row and 1 column
Attempts:
2 left
💡 Hint
Count the number of tags for rows and tags inside each for columns.
🧠 Conceptual
intermediate
1:00remaining
Which tag defines a table header cell?
In HTML tables, which tag is used to create a header cell that is usually bold and centered by default?
A<th>
B<td>
C<tr>
D<thead>
Attempts:
2 left
💡 Hint
Header cells are different from regular cells and usually appear at the top of columns.
❓ selector
advanced
1:30remaining
Which CSS selector targets all cells in the second column of a table?
Given a table, which CSS selector will select every cell in the second column only?
Atable tr:nth-child(2) td
Btable tr td:nth-child(2)
Ctable td:nth-of-type(2)
Dtable td:nth-child(2)
Attempts:
2 left
💡 Hint
Think about selecting the second cell inside each row.
❓ layout
advanced
1:30remaining
How to make table columns evenly spaced using CSS?
You want all columns in your HTML table to have equal width regardless of content. Which CSS property and value will achieve this?
Atable { border-collapse: collapse; }
Btable { width: auto; }
Ctable { display: flex; }
Dtable { table-layout: fixed; width: 100%; }
Attempts:
2 left
💡 Hint
One property controls how the browser calculates column widths.
❓ accessibility
expert
2:00remaining
Which attribute improves accessibility by associating table headers with data cells?
To help screen readers understand which header belongs to which data cell in a complex table, which attribute should you use on <td> elements?
Arole
Baria-labelledby
Cheaders
Dscope
Attempts:
2 left
💡 Hint
This attribute lists the IDs of header cells related to the data cell.

Practice

(1/5)
1. Which HTML tag is used to create a row in a table?
easy
A. <tr>
B. <td>
C. <th>
D. <table>

Solution

  1. Step 1: Understand table structure

    A table is made of rows and columns. Rows group cells horizontally.
  2. Step 2: Identify the row tag

    The <tr> tag defines a table row, while <td> and <th> define cells inside rows.
  3. Final Answer:

    <tr> -> Option A
  4. Quick Check:

    Row tag = <tr> [OK]
Hint: Rows use <tr>, cells use <td> or <th> [OK]
Common Mistakes:
  • Confusing <td> as row tag
  • Using <th> for rows instead of headers
  • Using <table> as row tag
2. Which of the following is the correct way to create a table header cell?
easy
A. <table>Header</table>
B. <td>Header</td>
C. <tr>Header</tr>
D. <th>Header</th>

Solution

  1. Step 1: Know header cell tags

    Table headers use <th> tags to label columns or rows.
  2. Step 2: Check the options

    Only <th>Header</th> uses <th> correctly for a header cell.
  3. Final Answer:

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

    Headers use <th> tags [OK]
Hint: Headers always use <th>, not <td> [OK]
Common Mistakes:
  • Using <td> for headers
  • Using <tr> or <table> as cells
  • Missing closing tags
3. What will the following HTML code display in a browser?
<table>
  <tr>
    <th>Name</th>
    <th>Age</th>
  </tr>
  <tr>
    <td>Alice</td>
    <td>30</td>
  </tr>
</table>
medium
A. An error because <th> cannot be used inside <tr>.
B. A list of names and ages without any table structure.
C. A table with two columns labeled 'Name' and 'Age', and one row with 'Alice' and '30'.
D. A table with one column and two rows.

Solution

  1. 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'.
  2. Step 2: Understand rendering

    This creates a table with two columns labeled 'Name' and 'Age', and one data row with 'Alice' and '30'.
  3. Final Answer:

    A table with two columns labeled 'Name' and 'Age', and one row with 'Alice' and '30'. -> Option C
  4. Quick Check:

    Headers + data rows = labeled table [OK]
Hint: Headers in first row, data in next rows form columns [OK]
Common Mistakes:
  • Thinking <th> cannot be inside <tr>
  • Confusing table with list
  • Assuming one column only
4. Identify the error in this table code:
<table>
  <tr>
    <td>Item 1</td>
  <tr>
    <td>Item 2</td>
  </tr>
</table>
medium
A. Table tag is not closed.
B. Missing closing tag for the first <tr>.
C. Using <td> instead of <th> for headers.
D. Extra closing tag at the end.

Solution

  1. Step 1: Check row tags

    The first <tr> is opened but not closed before the second <tr> starts.
  2. Step 2: Confirm correct nesting

    Each <tr> must have a matching closing </tr>. Here, the first row is missing its closing tag.
  3. Final Answer:

    Missing closing tag for the first <tr>. -> Option B
  4. Quick Check:

    Every needs a closing [OK]
Hint: Check every has a matching [OK]
Common Mistakes:
  • Ignoring missing closing tags
  • Confusing <td> and <th> errors
  • Assuming table tag is unclosed
5. You want to create a table with 3 columns: 'Product', 'Price', and 'Stock'. The first row should be headers. Which code snippet correctly creates this table structure?
hard
A.
<table>
  <tr>
    <th>Product</th>
    <th>Price</th>
    <th>Stock</th>
  </tr>
</table>
B.
<table>
  <tr>
    <td>Product</td>
    <td>Price</td>
    <td>Stock</td>
  </tr>
</table>
C.
<table>
  <th>Product</th>
  <th>Price</th>
  <th>Stock</th>
</table>
D.
<table>
  <tr>
    <th>Product</th>
    <td>Price</td>
    <td>Stock</td>
  </tr>
</table>

Solution

  1. Step 1: Identify header row requirements

    The first row should use <th> tags for all three headers to label columns.
  2. 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.
  3. Final Answer:

    <pre><table> <tr> <th>Product</th> <th>Price</th> <th>Stock</th> </tr> </table></pre> -> Option A
  4. Quick Check:

    Headers = all <th> in a <tr> [OK]
Hint: Headers row uses all <th> inside one <tr> [OK]
Common Mistakes:
  • Using <td> for headers
  • Placing <th> outside <tr>
  • Mixing <th> and <td> in header row
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