Lesson contents
Basic tables
Tables are made up of rows and columns. Here's a table listing some university classes:
It's hard to see the rows and columns, so let's add some lines.
You can see that the table has two rows and three columns. That's what makes a table a table: rows and columns.
Here's the code for the table.
- <table>
- <thead>
- </thead>
- <tbody>
- <tr>
- <td>DOG 101</td>
- <td>Introduction to the modern dog</td>
- <td>MW 9:00am - 11:00am</td>
- </tr>
- <tr>
- <td>DOG 110</td>
- <td>Dogs in the ancient world</td>
- <td>M 6:30pm - 9:30pm</td>
- </tr>
- </tbody>
- </table>
The whole thing is surrounded by a table
tag. Next is thead
, giving table column headers. This table doesn't have any. After that is tbody
, with the body of the table. Each row in the body is inside a tr
tag. Inside each tr
, there is a td
for each table cell. The "d" in td
stands for "data." There's one td
for each column, in each row.
Header and footer
Here's the table of university classes again:
It might help to add a header, so users know what the columns are. A footer can come in handy, too. How about this:
Here's the code. The table is divided into three parts: the header, the body, and the footer.
- <table>
- <thead> Header starts
- <tr>
- <th>Course code</th>
- <th>Title</th>
- <th>When offered</th>
- </tr>
- </thead> Header ends
- <tbody> Body starts
- <tr>
- <td>DOG 101</td>
- <td>Introduction to the modern dog</td>
- <td>MW 9:00am - 11:00am</td>
- </tr>
- <tr>
- <td>DOG 110</td>
- <td>Dogs in the ancient world</td>
- <td>M 6:30pm - 9:30pm</td>
- </tr>
- </tbody> Body ends
- <tfoot> Footer starts
- <tr>
- <td colspan="3">Times subject to change.</td>
- </tr>
- </tfoot> Footer ends
- </table>
The header uses the tag th
instead of td
.
- <thead>
- <tr>
- <th>Course code</th>
- <th>Title</th>
- <th>When offered</th>
- </tr>
- </thead>
By default, browsers render th
as centered and bold. You can change that with CSS.
Here's the footer:
- <tfoot>
- <tr>
- <td colspan="3">Times subject to change.</td>
- </tr>
- </tfoot>
The colspan
tells the footer's td
to take up three columns, so it stretches across the entire row as needed:
Without the colspan
...
- <tfoot>
- <tr>
- <td>Times subject to change.</td>
- </tr>
- </tfoot>
... the table would look like this:
The browser makes the first column too wide, so it can fit the text "Times subject to change."
Putting the colspan
in the footer...
- <tfoot>
- <tr>
- <td colspan="3">Times subject to change.</td>
- </tr>
- </tfoot>
... makes the table look more natural:
Exercise
Calm worms
Use the <table>
tag to make a page like this:
Use any other tags you need.
Password, yada yada.
Summary.
- The
table
tag makes a table with rows and columns. - A table can have a head (
thead
), a body (tbody
), and a footer (tfoot
). tr
makes a table row.- Inside
tr
s,td
makes a table column. colspan
makes atd
span multiple columns.
Up next
The tables you've seen so far are ugly. Let's make them look better.