Now that you we have used all the right semantics you might want to change the width of each column Ė as of right now, each column is 33% wide. Letís say we want the first column to be 40% of the table and the two remaning columns to be 30% (as 40% + 30% +30% = 100%).
In order to do this, we use the <col> element. This element is to be placed between the <table> tag and the <thead> tag and we use the style attribute to define the width of the columns. The <col> element is a self-closing element and you need one for every columns of you table. Letís have an example:
<table border="1" width="100%"> <col style="width:40%"> <col style="width:30%"> <col style="width:30%"> <thead> <tr> <th>Fruits</th> <th>Vitamin A</th> <th>Vitamin C</th> </tr> </thead> <tbody> <tr> <th>Apples</th> <td>98 ui</td> <td>8.4 mg</td> </tr> <tr> <th>Oranges</th> <td>295 ui</td> <td>69.7 mg</td> </tr> <tr> <th>Bananas</th> <td>76 ui</td> <td>10.3 mg</td> </tr> </tbody> </table>
This way, you can control how wide the columns of the table should be. I have used the style attribute and the value "width:40%" as an example, but ideally, you should have this in your stylesheet file, as this has everything to do with looks and nothing with the semantics.
I you did use your stylesheet you could create three classes where you defined the width of each column, and then your markup would look something like this:
<table border="1"> <col class="column-one"> <col class="column-two"> <col class="column-three"> <thead> <tr> <th>Fruits</th> <th>Vitamin A</th>
What you have learned
- Every table starts and end with the <table> element
- You use the attributes colspan and rowspan to merge cells
- A table is divided into a head (<thead> element) and a body (the <tbody> element)
- Inside the head and body the table is divided into rows using the <tr> element
- You donít define columns in HTML tables, but instead you use the <td> element to define the individual data cells
- Whenever you need to define a heading cell, use the <th> element instead of the <td> element