Table columns in range 3...4 established by element th have no cells beginning in them

3.5k views Asked by At

I am writing a table in HTML5 with a table head, and body. Upon validating using Sublime Text 3 W3C Validator I get the error: "Table columns in range 3...4 established by element th have no cells beginning in them". Could this be a bug or am I coding the table incorrectly? Please find the table code below:

<table>
    <thead>
        <tr>
        <th colspan="5"><a id="button01" href="#" title="Learn More">Learn More</a></th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td colspan="1">A</td>
            <td colspan="3">Item A</td>
            <td colspan="1"><span class="bullet">*</span></td>
        </tr>
        <tr>
            <td colspan="1">B</td>
            <td colspan="3">Item B</td>
            <td colspan="1"><span class="bullet">*</span></td>
        </tr>
        <tr>
            <td colspan="1">M</td>
            <td colspan="3">Traditional (DIN-compliant flange)</td>
            <td colspan="1"><span class="bullet">*</span></td>
        </tr>
    </tbody>
</table>
1

There are 1 answers

0
Ben Hayes On BEST ANSWER

To solve this error I used colspan="1" instead of colspan="3" and changed the table head colspan="5" to colspan="3". This eliminated the W3C HTML5 Validator errors. I have also included the css I used to style for my own needs.

See below for the code:

<table>
  <thead>
    <tr>
      <th colspan="3"><a id="button01" href="#" title="Learn More">Learn More</a>
      </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td colspan="1">A</td>
      <td colspan="1">Item A</td>
      <td colspan="1"><span class="bullet">*</span>
      </td>
    </tr>
    <tr>
      <td colspan="1">B</td>
      <td colspan="1">Item B</td>
      <td colspan="1"><span class="bullet">*</span>
      </td>
    </tr>
    <tr>
      <td colspan="1">M</td>
      <td colspan="1">Traditional (DIN-compliant flange)</td>
      <td colspan="1"><span class="bullet">*</span>
      </td>
    </tr>
  </tbody>
</table>

/*
 * Table Components
 */

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 20px;
}
thead {
  background: #EEE;
  font-weight: bold;
}
td {
  border: 1px solid #222;
  padding: .35em;
  vertical-align: middle;
}
td:first-child {
  width: 10%;
}
td:last-child {
  width: 5%;
}