HTML Tables

What is an HTML Table?

An HTML table is a structured element used to present information in a tabular format on a web page. It is created using the <table> tag in HTML and consists of rows and columns that organize data into cells. Tables provide a convenient way to display data, making it easier for users to understand and analyze information. They can be used for various purposes including displaying data, presenting statistics, creating calendars, and organizing content. In addition to text, tables can include images, links, and form controls.

Why Use Tables in Web Design?

Structured Data Presentation

Tables are commonly used in web design to present data in a structured and organized manner. They are excellent for displaying large amounts of information clearly, such as product details on e-commerce websites.

Precise Text Positioning

By organizing text into rows and columns, tables help create neat and uniform layouts. This is useful for creating newsletters, email templates, or organizing content on blog pages.

Arranging Images and Objects

Tables can be used to arrange images and other objects on a webpage. For example, a photographer's portfolio may use tables to showcase their work in a clean and organized gallery format.

Specific Layouts

Tables provide designers with greater control over the placement and arrangement of elements on a webpage, ranging from simple to complex designs.

Enhanced Searchability

Tables with appropriate headers and labels improve searchability, making it easier for users to find specific information.

Basic Structure of an HTML Table

Table Element

The <table> element is used to create a structured layout of rows and columns. Each cell within a table can contain text, numbers, or images. The structure begins with the opening <table> tag, followed by rows (<tr>), and cells within rows (<td> for data cells and <th> for header cells).

Table Rows

Table rows are defined with the <tr> tag. Each row can contain multiple cells, defined using <td> for standard cells or <th> for header cells.

Table Cells

Table cells organize and display data within a table. Each cell represents a single piece of data or information, arranged in rows and columns for easy comparison and analysis.

Table Headers

Table headers, defined using the <th> tag, are typically used to label the columns or rows. They can be styled using CSS to add background colors or other formatting.

Styling HTML Tables with CSS

Background Color

To add a background color to a table header, use the following CSS:

th {
  background-color: #008000; /* Replace #008000 with the desired color */
  color: #FFFFFF; /* Optional: define a text color */
}

Border Properties

Border properties control the appearance of borders around table elements. Use the following CSS to set border properties:

table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}

Text Alignment

Text alignment within table cells can be controlled using the text-align property. For example:

th, td {
  text-align: left; /* Options: left, center, right, justify */
}

Cell Spacing and Padding

Cell spacing and padding control the spacing between cells and the content within cells, respectively. Use the following attributes within the <table> tag:

<table cellspacing="5" cellpadding="10">

Advanced Features of HTML Tables

Column Span and Row Span

Column span and row span allow cells to span multiple columns or rows, respectively. Use the colspan and rowspan attributes:

<td colspan="3">This cell spans three columns</td>
<td rowspan="2">This cell spans two rows</td>

Nested Tables

Nested tables involve placing one table inside another. While useful for complex layouts, they can complicate code and are less recommended with modern layout techniques like CSS Grid and Flexbox.

HTML tables are powerful tools for organizing and presenting data effectively on web pages. By utilizing the structure and styling options available, developers can create visually appealing and functional tables.

Create a free account to access the full topic

“It has all the necessary theory, lots of practice, and projects of different levels. I haven't skipped any of the 3000+ coding exercises.”
Andrei Maftei
Hyperskill Graduate