Creating a Table in HTML
HTML Lesson 5: Creating a Table in HTML
Creating a table in HTML
Let’s look at the tags for creating a table:
1 2 3 4 5 | < table > < tr > < td > contents < / td > < / tr > < / table > |
Result: Add a border to the table – attribute :
Contents
border
1 2 3 4 5 | < table border = "1" > < tr > < td > contents < / td > < / tr > < / table > |
Result:

Creating a table begins with a tag table (from the English word “table”). The tag tris used to create a row. The row contains cells—the tag td. The table ends with a closing tag./table

TABLE tag attributes
align | left— table to the left;center– table in the center;right— table to the right. |
width | 40050% |
bоrdеr | width |
bordercolor | frame colors |
сеllspacing | frame edge width |
cellpadding | internal distance to the frame |
bgсоlоr | Color |
bасkground | file (table background) |
th instead of td. The browser centers the contents of these cells and makes the font bold.TR tag attributes are strings
align | left, center,right | horizontal alignment |
valign | top, middle, bottom,baseline | vertical alignment |
bgcolor | color | background |
bordercolor | color | border color |
TD or TH tag attributes – cells
align | left, center,right | horizontal alignment |
valign | top, middle, bottom,baseline | vertical alignment |
width | number or percentage | cell width |
bgcolor | color | background color |
background | file | background file |
bordercolor | color | border color |
nowrap | causes the text inside the cell to be displayed without breaks, in one continuous line |
Important:
- The tag
captionis used to create a table header. - The tag is used to group header cells.
thead - To group the main content of a table, use the tag
tbody - The tag
tfootdefines the bottom of the table.
The table header tag caption can have an attribute that determines the header’s position — align with the following values:
top — header above the table,
bottom — header below the table,
left — header at the top and aligned left,
right — header at the top and aligned right. Unfortunately, not all values work in all browsers.

Execution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | < table border = "1" > < caption > table < / caption > < thead > < tr > < th > Heading 1 < / th >< th > Heading 2 < / th > < / tr > < / thead > < tbody > < tr > < td > content < / td >< td > content < / td > < / tr > < / tbody > < tfoot > ... < / tfoot > < / table > |
Lab: Create a table using the template. The table must have a header and grouping areas ( thead is the first row of the table, tbody is the second and third rows of the table, and tfoot is the fourth row of the table).
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| Row 2 Cell 1 | Row2 Cell2 | Row 2 Cell 3 | Row 2 Cell 4 |
| Row 3 Cell 1 | Row 3 Cell 2 | Row 3 Cell 3 | Row 3 Cell 4 |
| Row 4 Cell 1 | Row 4 Cell 2 | Row 4 Cell 3 | Row4 Cell4 |
Merging cells in a table
This is done using two attributes of the td tag: COLSPAN – merging cells horizontally, ROWSPAN – merging cells vertically.
COLSPAN syntax:
1 2 3 4 5 6 7 8 9 < table > < tr > < td colspan = "2" > < / td > < / tr > < tr > < td > < / td > < td > < / td > < / tr > < / table >
ROWSPAN syntax:
1 2 3 4 5 6 7 8 9 < table > < tr > < td rowspan = "2" > < / td > < td > < / td > < / tr > < tr > < td > < / td > < / tr > < / table >

Execution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | < table border = "1" > < caption > Table with merged cells < / caption > < tr > < th rowspan = "2" > < / th > < th colspan = "2" > Heading 1 < / th > < / tr > < tr > < th > Heading 1.1 < / th > < th > Heading 1.2 < / th > < / tr > < tr > < th > Heading 2 < / th > < td > Cell 1 < / td > < td > Cell 2 < / td > < / tr > < tr > < th > Heading 3 < / th > < td > Cell 3 < / td > < td > Cell 4 < / td > < / tr > < / table > |

Cell grouping: COLGROUP
The element colgroup allows you to create groups of columns with the same properties.
Let’s look at an example:

Execution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | < TABLE border = "4" > < colgroup > < col span = "2" width = "30" style = "background-color: green" / > < col width = "60" style = "background-color: blue" / > < / colgroup > < colgroup style = "background-color:red" > < col span = 2 width = "120" / > < / colgroup > < TR > < TD > 1-1 < / TD >< TD > 1-2 < / TD >< TD > 1-3 < / TD >< TD > 1-4 < / TD >< TD > 1-5 < / TD > < / TR > < TR > < TD > 2-1 < / TD >< TD > 2-2 < / TD < TD > 2-3 < / TD >< TD > 2-4 < / TD < TD > 2-5 < / TD > < / TR > < / table > |
COLGROUP tag attributes
align | column content alignment
doesn’t work in Firefox |
dir | determines the direction of the characters:
doesn’t work in Firefox |
span | The number of columns to which the design will be applied (default 1) |
style | specifies an inline style sheet |
valign | vertical alignment in a table cell
doesn’t work in Firefox |
width | column width |
HTML nested tables
Tables with a complex structure are easier to replace with nested tables.

Execution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < TABLE border = "4" bgcolor = "yellow" > < tr > < td > Table 1 < / td > < td > < TABLE > < tr > < td > Table 2 < / td >< td > Cell 2-2 < / td > < / tr > < tr > < td > Cell 3-2 < / td >< td > Cell 4-2 < / td > < / tr > < / TABLE > < / td > < tr > < td > Cell 3-1 < / td > < td > Cell 4-1 < / td > < / tr > < / TABLE > |
Lab work:
- Create a fixed-size table containing cells of the width shown in the figure.
- Insert a nested table into the bottom left cell
- Make the background of the nested table cells gray
Lab work:
- Open the assignment completed in the previous lab
- Add another nested table to the top cell.
- Make the background of the nested table cells white
Explore More IT Terms
A
B
C
D
E
F
H
K
W
- What are databases, and why do they need DBMS and SQL?
- What do Linux distributions consist of?
- What is a GPU in a computer, in simple terms?
- What is Linux? The History of Linux
- What is the OSI Model: A Complete Explanation of the Seven Layers and Their Role in Networking
- Which Linux distribution should you choose? A Linux distribution overview


