HTML CSS - Tables
Creating and styling tables in HTML
Tables are used to display data in a structured format consisting of rows and columns. In HTML, tables are created using the <table>
element along with various child elements. This tutorial covers how to create and style tables in HTML.
Key Points:
- Tables are created using the
<table>
element. - Child elements like
<tr>
,<th>
, and<td>
define the structure of the table. - CSS can be used to style tables and improve their appearance.
Basic Table Structure
A basic HTML table consists of the following elements:
<table>
: Defines the table.<tr>
: Defines a table row.<th>
: Defines a table header cell.<td>
: Defines a table data cell.
Here is an example of a basic table:
<table>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
</tr>
<tr>
<td>John</td>
<td>30</td>
<td>New York</td>
</tr>
<tr>
<td>Jane</td>
<td>25</td>
<td>Los Angeles</td>
</tr>
</table>
This will produce the following table:
Name | Age | City |
---|---|---|
John | 30 | New York |
Jane | 25 | Los Angeles |
Adding a Table Caption
You can add a caption to a table using the <caption>
element, which provides a brief description of the table's content. Here is an example:
<table>
<caption>User Information</caption>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
</tr>
<tr>
<td>John</td>
<td>30</td>
<td>New York</td>
</tr>
<tr>
<td>Jane</td>
<td>25</td>
<td>Los Angeles</td>
</tr>
</table>
Table Headers
Table headers are defined using the <th>
element. They are typically used to specify column headings and are styled differently from regular table cells. You can use the scope
attribute to indicate whether a header applies to a column or a row:
<table>
<tr>
<th scope="col">Name</th>
<th scope="col">Age</th>
<th scope="col">City</th>
</tr>
<tr>
<td>John</td>
<td>30</td>
<td>New York</td>
</tr>
<tr>
<td>Jane</td>
<td>25</td>
<td>Los Angeles</td>
</tr>
</table>
Styling Tables with CSS
CSS can be used to enhance the appearance of tables. Here are some common styles you can apply to tables:
<style>
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
table, th, td {
border: 1px solid #ddd;
}
th, td {
padding: 8px;
text-align: left;
}
th {
background-color: #f4f4f4;
}
</style>
This CSS code sets the width of the table to 100%, collapses the borders, adds padding to the cells, and sets a background color for the header cells.
Spanning Rows and Columns
You can use the rowspan
and colspan
attributes to make a cell span multiple rows or columns:
<table>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
</tr>
<tr>
<td rowspan="2">John</td>
<td>30</td>
<td>New York</td>
</tr>
<tr>
<td>31</td>
<td>Boston</td>
</tr>
<tr>
<td colspan="2">Jane</td>
<td>25</td>
</tr>
</table>
This will produce the following table with cells spanning multiple rows and columns:
Name | Age | City |
---|---|---|
John | 30 | New York |
31 | Boston | |
Jane | 25 |
Summary
In this tutorial, you learned how to create and style tables in HTML. You explored the basic structure of tables using the <table>
, <tr>
, <th>
, and <td>
elements. You also learned how to add captions, use table headers, style tables with CSS, and span rows and columns. Understanding how to use tables is essential for displaying data in a structured and organized manner on web pages.