Striped Background Tables

To display striped background tables using CSS, use nth-child() CSS selector for table rows, and set background-color for even or odd rows. We may also set a color for even rows, and another color for odd rows.

The following is the CSS to set border-collapse value.

The syntax to set background-color for even numbered rows.

tr:nth-child(even) {
  background-color: #eee;
}

The syntax to set background-color for odd numbered rows.

tr:nth-child(odd) {
  background-color: #eee;
}

The syntax to set different background-color for even and odd numbered rows.

tr:nth-child(even) {
  background-color: #eee;
}
tr:nth-child(even) {
  background-color: #eea;
}

Examples

1 Background Color for Even Numbered Table Rows

In the following example, we take a table with two columns, and four rows; and apply background color to even numbered rows in the table.

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <style>
    table {
      width: 100%;
    }
    th {
      text-align: left;
      padding: 0.5em 0;
    }
    tr:nth-child(even) {
      background-color: #eee;
    }
  </style>
</head>
<body>
  <table>
    <thead>
      <tr>
        <th>Fruit</th>
        <th>Quantity</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Apple</td>
        <td>32</td>
      </tr>
      <tr>
        <td>Banana</td>
        <td>48</td>
      </tr>
      <tr>
        <td>Cherry</td>
        <td>75</td>
      </tr>
      <tr>
        <td>Mango</td>
        <td>69</td>
      </tr>
    </tbody>
  </table>
</body>
</html>

2 Background Color for Odd Numbered Table Rows

In the following example, we take a table with two columns, and four rows; and apply background color to odd numbered rows in the table.

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <style>
    table {
      width: 100%;
    }
    th {
      text-align: left;
      padding: 0.5em 0;
    }
    tr:nth-child(odd) {
      background-color: #eee;
    }
  </style>
</head>
<body>
  <table>
    <thead>
      <tr>
        <th>Fruit</th>
        <th>Quantity</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Apple</td>
        <td>32</td>
      </tr>
      <tr>
        <td>Banana</td>
        <td>48</td>
      </tr>
      <tr>
        <td>Cherry</td>
        <td>75</td>
      </tr>
      <tr>
        <td>Mango</td>
        <td>69</td>
      </tr>
    </tbody>
  </table>
</body>
</html>

3 Different Background Color for Odd and Even Numbered Table Rows

In the following example, we take a table with two columns, and four rows; apply a background color to odd numbered rows, and a different color to even numbered rows, in the table.

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <style>
    table {
      width: 100%;
    }
    th {
      text-align: left;
      padding: 0.5em 0;
      background-color: #adf;
    }
    tr:nth-child(even) {
      background-color: #eee;
    }
    tr:nth-child(odd) {
      background-color: #efe;
    }
  </style>
</head>
<body>
  <table>
    <thead>
      <tr>
        <th>Fruit</th>
        <th>Quantity</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Apple</td>
        <td>32</td>
      </tr>
      <tr>
        <td>Banana</td>
        <td>48</td>
      </tr>
      <tr>
        <td>Cherry</td>
        <td>75</td>
      </tr>
      <tr>
        <td>Mango</td>
        <td>69</td>
      </tr>
    </tbody>
  </table>
</body>
</html>

Conclusion

In this CSS Tutorial, we learned how to set background color for even and/or odd numbered rows in the table, and display a striped table, with examples.