Bảng (table) là một trong những thành phần quan trọng trong HTML, giúp hiển thị dữ liệu một cách có tổ chức và dễ đọc hơn. Dù bạn muốn trình bày danh sách sản phẩm, thông tin người dùng hay bất kỳ dữ liệu nào, việc sử dụng bảng đúng cách sẽ giúp giao diện trang web trở nên chuyên nghiệp hơn. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo bảng HTML từ cơ bản đến nâng cao, bao gồm cả việc áp dụng CSS để làm đẹp và tối ưu hiển thị.
|
– Tính đến thời điểm này thì chắc các bạn cũng đã quá quen thuộc với hình dạng của một cái bảng rồi, cho nên tôi không cần phải giải thích lại khái niệm bảng là gì nữa, mà chúng ta sẽ đi thẳng vào việc tìm hiểu cách tạo một cái bảng luôn. |
Các thẻ được sử dụng trong việc tạo bảng
Thông thường, để tạo được một cái bảng thì chúng ta cần phải sử dụng bốn loại thẻ:
|
– Trong đó:
|
|
– Ví dụ: Cái bảng bên trái có sáu hàng tương ứng với sáu phần tử <tr>, hàng đầu tiên có ba ô tiêu đề tương ứng với ba phần tử <th>, năm hàng còn lại gồm mười lăm ô bình thường tương ứng với mười lăm phần tử <td> |
Lưu ý: Ô tiêu đề là loại ô mà văn bản nằm bên trong nó mặc định được tô đậm & canh giữa.
Cách thức tạo một cái bảng
Để tạo một cái bảng thì chúng ta nên thực hiện lần lượt các bước như sau:
- Bước 1: Xác định một cái bảng.
- Bước 2: Xác định số hàng nằm bên trong bảng.
- Bước 3: Xác định số ô nằm bên trong mỗi hàng.
- Bước 4: Xác định nội dung của từng ô.
- Bước 5: Thiết lập thuộc tính border với giá trị 1 để tạo đường viền cho bảng và các ô.
Ví dụ:
Họ tên | Ngày sinh | Giới tính |
---|---|---|
Trần Anh Đức | 03/08/1993 | Nam |
Kiều Thị Thu Hằng | 04/09/1991 | Nữ |
Vương Thị Lê Na | 06/10/1991 | Nữ |
Để tạo được một cái bảng giống phía trên thì chúng ta thực hiện lần lượt các bước sau:
Bước 1: Xác định một cái bảng
<table></table>
Bước 1: Xác định một cái bảng
Bước 2: Xác định số hàng nằm bên trong bảng.
(vì có tổng cộng bốn hàng nên tôi sử dụng bốn phần tử <tr>)
<table>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table>
Bước 1: Xác định một cái bảng
Bước 2: Xác định số hàng nằm bên trong bảng.
Bước 3: Xác định số ô nằm bên trong mỗi hàng.
(hàng đầu tiên có ba ô tiêu đề, ba hàng còn lại thì mỗi hàng có ba ô bình thường)
<table>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
Bước 1: Xác định một cái bảng
Bước 2: Xác định số hàng nằm bên trong bảng.
Bước 3: Xác định số ô nằm bên trong mỗi hàng.
Bước 4: Xác định nội dung của từng ô.
<table>
<tr>
<th>Họ tên</th>
<th>Ngày sinh</th>
<th>Giới tính</th>
</tr>
<tr>
<td>Trần Anh Đức</td>
<td>03/08/1993</td>
<td>Nam</td>
</tr>
<tr>
<td>Kiều Thị Thu Hằng</td>
<td>04/09/1991</td>
<td>Nữ</td>
</tr>
<tr>
<td>Vương Thị Lê Na</td>
<td>06/10/1991</td>
<td>Nữ</td>
</tr>
</table>
Bước 1: Xác định một cái bảng
Bước 2: Xác định số hàng nằm bên trong bảng.
Bước 3: Xác định số ô nằm bên trong mỗi hàng.
Bước 4: Xác định nội dung của từng ô.
Bước 5: Thiết lập thuộc tính border với giá trị 1 để tạo đường viền cho bảng và các ô.
<table border="1">
<tr>
<th>Họ tên</th>
<th>Ngày sinh</th>
<th>Giới tính</th>
</tr>
<tr>
<td>Trần Anh Đức</td>
<td>03/08/1993</td>
<td>Nam</td>
</tr>
<tr>
<td>Kiều Thị Thu Hằng</td>
<td>04/09/1991</td>
<td>Nữ</td>
</tr>
<tr>
<td>Vương Thị Lê Na</td>
<td>06/10/1991</td>
<td>Nữ</td>
</tr>
</table>
Các thuộc tính được dùng trong việc tạo bảng
Dưới đây là danh sách một số thuộc tính thường được áp dụng trong việc tạo bảng.
(các bạn vui lòng tấm vào hình để tìm hiểu chi tiết chức năng và cách sử dụng của từng thuộc tính)
border | – Thiết lập độ dày của cái đường viền bao xung quanh bảng và các ô. |
cellspacing | – Thiết lập khoảng cách nằm giữa mỗi hai đường viền lân cận. |
cellpadding | – Thiết lập khoảng cách vùng đệm bên trong các ô. |
bgcolor | – Thiết lập màu nền cho bảng hoặc các ô. |
width | – Thiết lập chiều rộng cho bảng hoặc các ô. |
height | – Thiết lập chiều cao cho bảng hoặc các ô. |
align | – Canh lề cho nội dung bên trong ô (theo chiều ngang) |
valign | – Canh lề cho nội dung bên trong ô (theo chiều dọc) |
Cách gộp các ô bên trong bảng lại với nhau
Thông thường, khi tạo một cái bảng thì số ô trên mỗi hàng phải bằng nhau. Tuy nhiên, có một vài trường hợp đặc biệt, chúng ta cần phải tạo ra những cái bảng mà số ô trên mỗi hàng có sự hơn kém nhau.
Họ tên | Giới tính | Kết quả thi | ||
---|---|---|---|---|
Toán | Lý | Hóa | ||
Trần Đức Anh | Nam | 7.25 | 8.0 | 3.75 |
Mai Đức Hiếu | Nam | 7.0 | 9.0 | 4.75 |
Để làm được điều đó thì chúng ta cần phải gộp các ô lại với nhau.
Gộp các ô theo chiều ngang
Để gộp các ô theo chiều ngang thì chúng ta đặt thuộc tính colspan vào bên trong thẻ mở của cái ô mà ta muốn bắt đầu gộp nó với những ô nằm phía bên phải.
Cú pháp:
colspan="số ô muốn gộp lại với nhau"
Ví dụ:
<table border="1">
<tr>
<th colspan="3">THÔNG TIN SINH VIÊN</th>
</tr>
<tr>
<td>Trần Anh Đức</td>
<td>03/08/1993</td>
<td>Nam</td>
</tr>
<tr>
<td>Kiều Thị Thu Hằng</td>
<td>04/09/1991</td>
<td>Nữ</td>
</tr>
<tr>
<td>Vương Thị Lê Na</td>
<td>06/10/1991</td>
<td>Nữ</td>
</tr>
</table>
Gộp các ô theo chiều dọc
Để gộp các ô theo chiều dọc thì chúng ta đặt thuộc tính rowspan vào bên trong thẻ mở của cái ô mà ta muốn bắt đầu gộp nó với những ô nằm phía dưới.
Cú pháp:
rowspan="số ô muốn gộp lại với nhau"
Ví dụ:
<table border="1">
<tr>
<th rowspan="3">LẬP TRÌNH WEB</th>
<td>HTML</td>
</tr>
<tr>
<td>CSS</td>
</tr>
<tr>
<td>JavaScript</td>
</tr>
</table>
Tổng hợp một số ví dụ khác để rút kinh nghiệm
Ví dụ 1:
Họ tên thí sinh | Ngày sinh | Giới tính | Kết quả thi | ||
---|---|---|---|---|---|
Toán | Lý | Hóa | |||
Trần Đức Anh | 03/08/1993 | Nam | 7.25 | 8.0 | 3.75 |
Kiều Thị Thu Hằng | 04/09/1991 | Nữ | 7.0 | 9.0 | 4.75 |
Vương Thị Lê Na | 06/10/1991 | Nữ | 6.5 | 9.75 | 2.25 |
Ví dụ 2:
STT | Họ tên | Giới tính | Chức vụ | |
---|---|---|---|---|
Nam | Nữ | |||
1 | Trần Đức Anh | X | Lớp Trưởng | |
2 | Kiều Thị Thu Hằng | X | Lớp Phó | |
3 | Vương Thị Lê Na | X | Tổ viên |
Ví dụ 3:
STT | Họ tên | GVHD | Lịch gặp GVHD |
---|---|---|---|
1 | Nguyễn Lê Thu Trang | Th.S Hồ Sỹ Tuy Đức | 08/03/2018 |
2 | Nguyễn Thị Diễm | ||
3 | Phạm Thị Hồng Đào | ||
4 | Nguyễn Thị Kim Sa | Th.S Phạm Thị Huyền Quyên | 05/03/2018 |
5 | Lê Thị Trang |
Ví dụ:
Bảng điểm lớp 9B | Toán | Lý | Hóa | |
---|---|---|---|---|
STT | Họ tên | |||
1 | Trần Đức Anh | 8.5 | 3.0 | 7.75 |
2 | Kiều Thị Thu Hằng | 10 | 9.25 | 5.75 |
3 | Vương Thị Lê Na | 2.25 | 6.0 | 7.75 |
Điểm trung bình cả lớp |
Tạo một cái tiêu đề cho bảng
Để tạo một cái tiêu đề cho bảng thì chúng ta cần phải đặt thẻ <caption> nằm ở vị trí đầu tiên bên trong phần tử <table> với cú pháp như sau:
<caption align="value">tiêu đề của cái bảng</caption>
Trong đó, value có thể được xác định dựa theo một trong hai loại giá trị:
top | – Tiêu đề sẽ nằm phía trên cái bảng. |
bottom | – Tiêu đề sẽ nằm phía dưới cái bảng. |
Ví dụ:
<table border="1">
<caption align="bottom">DANH SÁCH SINH VIÊN</caption>
<tr>
<th>Họ tên</th>
<th>Ngày sinh</th>
<th>Giới tính</th>
</tr>
<tr>
<td>Trần Anh Đức</td>
<td>03/08/1993</td>
<td>Nam</td>
</tr>
<tr>
<td>Kiều Thị Thu Hằng</td>
<td>04/09/1991</td>
<td>Nữ</td>
</tr>
</table>
– Lưu ý: Nếu chúng ta không thiết lập thuộc tính align cho thẻ <caption> thì tiêu đề của cái bảng sẽ mặc định nằm ở phía trên cái bảng.
– Thuộc tính border dùng để thiết lập độ dày của cái đường viền bao xung quanh bảng & các ô.
|
– Thuộc tính cellspacing dùng để thiết lập khoảng cách nằm giữa mỗi hai đường viền lân cận.
|
– Lưu ý: Nếu chúng ta không thiết lập thuộc tính cellspacing thì khoảng cách nằm giữa mỗi hai đường viền lân cận sẽ mặc định là 2 pixel.
– Thuộc tính cellpadding dùng để thiết lập khoảng cách vùng đệm bên trong các ô.
|
– Lưu ý: Nếu chúng ta không thiết lập thuộc tính cellpadding thì khoảng cách vùng đệm bên trong các ô sẽ mặc định là 1 pixel.
– Thuộc tính bgcolor dùng để thiết lập màu nền cho bảng hoặc các ô bên trong bảng.
– Nếu muốn thiết lập màu nền cho nguyên cái bảng thì ta đặt thuộc tính bgcolor nằm bên trong thẻ <table>
– Nếu muốn thiết lập màu nền cho một hàng thì ta đặt thuộc tính bgcolor nằm bên trong thẻ <tr> – Nếu muốn thiết lập màu nền cho một ô thì ta đặt thuộc tính bgcolor nằm bên trong thẻ <th> hoặc <td> |
Ví dụ:
<table border="1" bgcolor="yellow">
<tr bgcolor="red">
<th>Họ tên</th>
<th>Ngày sinh</th>
<th>Giới tính</th>
</tr>
<tr>
<td>Trần Anh Đức</td>
<td>03/08/1993</td>
<td>Nam</td>
</tr>
<tr>
<td bgcolor="green">Kiều Thị Thu Hằng</td>
<td>04/09/1991</td>
<td>Nữ</td>
</tr>
<tr>
<td>Vương Thị Lê Na</td>
<td>06/10/1991</td>
<td>Nữ</td>
</tr>
</table>
– Thuộc tính width dùng để thiết lập chiều rộng cho bảng hoặc các ô.
– Nếu muốn thiết lập chiều rộng cho bảng thì ta đặt thuộc tính width nằm bên trong thẻ <table>
– Nếu muốn thiết lập chiều rộng cho một ô thì ta đặt thuộc tính width nằm bên trong thẻ <th> hoặc <td> |
– Lưu ý: Khi chúng ta thiết lập chiều rộng cho một ô thì mặc định những ô nằm chung cột với ô đó sẽ có cùng một chiều rộng.
Ví dụ:
<table border="1" width="550">
<tr width="50%">
<th>Họ tên</th>
<th>Ngày sinh</th>
<th>Giới tính</th>
</tr>
<tr>
<td>Trần Anh Đức</td>
<td>03/08/1993</td>
<td>Nam</td>
</tr>
<tr>
<td>Kiều Thị Thu Hằng</td>
<td>04/09/1991</td>
<td>Nữ</td>
</tr>
<tr>
<td>Vương Thị Lê Na</td>
<td>06/10/1991</td>
<td>Nữ</td>
</tr>
</table>
– Thuộc tính height dùng để thiết lập chiều cao cho bảng hoặc các ô.
– Nếu muốn thiết lập chiều cao cho bảng thì ta đặt thuộc tính height nằm bên trong thẻ <table>
– Nếu muốn thiết lập chiều cao cho một ô thì ta đặt thuộc tính height nằm bên trong thẻ <th> hoặc <td> |
– Lưu ý: Khi chúng ta thiết lập chiều cao cho một ô thì mặc định những ô nằm chung hàng với ô đó sẽ có cùng một chiều cao.
Ví dụ:
<table border="1" height="400">
<tr height="75%">
<th>Họ tên</th>
<th>Ngày sinh</th>
<th>Giới tính</th>
</tr>
<tr>
<td>Trần Anh Đức</td>
<td>03/08/1993</td>
<td>Nam</td>
</tr>
<tr>
<td>Kiều Thị Thu Hằng</td>
<td>04/09/1991</td>
<td>Nữ</td>
</tr>
<tr>
<td>Vương Thị Lê Na</td>
<td>06/10/1991</td>
<td>Nữ</td>
</tr>
</table>
– Thuộc tính align dùng để canh lề cho nội dung bên trong ô (theo chiều ngang)
– Thuộc tính align có thể nhận một trong bốn giá trị sau đây:
left | – Nội dung bên trong ô sẽ được canh trái. |
center | – Nội dung bên trong ô sẽ được canh giữa. |
right | – Nội dung bên trong ô sẽ được canh phải. |
justify | – Nội dung bên trong ô sẽ được canh đều hai bên trái phải. |
Ví dụ:
<table border="1" width="1000">
<tr>
<th width="25%">Cột 1</th>
<th width="25%">Cột 2</th>
<th width="25%">Cột 3</th>
<th width="25%">Cột 4</th>
</tr>
<tr>
<td align="left">X</td>
<td align="center">X</td>
<td align="right">X</td>
<td align="justify">X</td>
</tr>
</table>
– Lưu ý: Nếu chúng ta đặt thuộc tính align bên trong thẻ <tr> thì tất cả những ô nằm ở hàng đó đều sẽ được canh lề.
Ví dụ:
<table border="1" width="500">
<tr>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
<tr align="center">
<td>Y</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
</table>
– Thuộc tính valign dùng để canh lề cho nội dung bên trong ô (theo chiều dọc)
– Thuộc tính valign có thể nhận một trong ba giá trị sau đây:
top | – Nội dung bên trong ô sẽ được canh nằm ở trên. |
middle (mặc định) | – Nội dung bên trong ô sẽ được canh nằm ở giữa. |
bottom | – Nội dung bên trong ô sẽ được canh nằm ở dưới. |
Ví dụ:
<table border="1" height="400">
<tr>
<td valign="top">X</td>
<td valign="middle">X</td>
<td valign="bottom">X</td>
</tr>
</table>
– Lưu ý: Nếu chúng ta đặt thuộc tính valign bên trong thẻ <tr> thì tất cả những ô nằm ở hàng đó đều sẽ được canh lề.
Ví dụ:
<table border="1" height="400">
<tr valign="top">
<td>X</td>
<td>X</td>
<td>X</td>
</tr>
</table>