Khám phá cấu trúc tài liệu HTML và làm chủ các thẻ HTML cơ bản như div, p, a, img, ul, ol, li, table, form, input. Hướng dẫn chi tiết này giúp bạn xây dựng nền tảng vững chắc cho việc phát triển web và tối ưu hóa trang web thân thiện với công cụ tìm kiếm (chuẩn SEO).
HTML (HyperText Markup Language) là xương sống của mọi trang web bạn truy cập hàng ngày. Nó cung cấp cấu trúc và ý nghĩa cho nội dung, cho phép trình duyệt hiển thị thông tin một cách có tổ chức. Để xây dựng một trang web chuyên nghiệp và dễ dàng quản lý, việc nắm vững cấu trúc tài liệu HTML và các thẻ cơ bản là điều kiện tiên quyết. Bài viết này sẽ đi sâu vào những kiến thức cốt lõi này, giúp bạn có nền tảng vững chắc để phát triển kỹ năng lập trình web.
---
Mỗi tài liệu HTML đều tuân theo một cấu trúc nhất định, giống như bộ xương nâng đỡ cơ thể. Dưới đây là các thành phần chính tạo nên cấu trúc này:
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tiêu đề Trang Web Của Bạn</title>
<!-- Các liên kết CSS, JavaScript, meta tags khác -->
</head>
<body>
<!-- Nội dung hiển thị trên trang web -->
</body>
</html>
<!DOCTYPE html>
: Đây là khai báo kiểu tài liệu. Nó thông báo cho trình duyệt biết rằng đây là một tài liệu HTML5, phiên bản mới nhất và được khuyến nghị sử dụng. Khai báo này phải luôn là dòng đầu tiên trong tài liệu HTML.<html lang="vi">
: Thẻ <html>
là thẻ gốc của mọi trang HTML. Toàn bộ nội dung trang web sẽ nằm bên trong thẻ này. Thuộc tính lang="vi"
được sử dụng để khai báo ngôn ngữ chính của trang là tiếng Việt, giúp cải thiện khả năng tiếp cận và tối ưu hóa công cụ tìm kiếm (SEO).<head>
: Phần <head>
chứa các thông tin meta về trang web mà không hiển thị trực tiếp trên trình duyệt. Các thông tin này bao gồm:
<meta charset="UTF-8">
: Khai báo bộ mã ký tự là UTF-8, đảm bảo rằng các ký tự đặc biệt (ví dụ: tiếng Việt có dấu) được hiển thị chính xác, tránh lỗi font.<meta name="viewport" content="width=device-width, initial-scale=1.0">
: Đây là một thẻ meta quan trọng cho thiết kế đáp ứng (responsive design). Nó hướng dẫn trình duyệt cách điều chỉnh kích thước và tỷ lệ hiển thị của trang web trên các thiết bị khác nhau (điện thoại, máy tính bảng, máy tính để bàn).<title>Tiêu đề Trang Web Của Bạn</title>
: Thẻ <title>
xác định tiêu đề của trang, hiển thị trên thanh tiêu đề của trình duyệt hoặc trên tab của trình duyệt. Tiêu đề này cực kỳ quan trọng cho SEO, vì nó thường là yếu tố đầu tiên mà người dùng nhìn thấy trong kết quả tìm kiếm.<link rel="stylesheet" href="style.css">
): Dùng để liên kết các tệp stylesheet bên ngoài, định dạng giao diện cho trang web.<script src="script.js"></script>
): Dùng để nhúng các đoạn mã JavaScript, thêm các chức năng tương tác cho trang web.<body>
: Phần <body>
chứa tất cả nội dung thực sự của trang web, những gì mà người dùng nhìn thấy và tương tác. Đây là nơi bạn sẽ đặt tất cả các thẻ HTML khác để xây dựng bố cục và hiển thị nội dung.---
Sau khi hiểu về cấu trúc tổng thể, hãy cùng khám phá các thẻ HTML cơ bản và cách sử dụng chúng để tạo ra nội dung phong phú.
<div>
: Hộp Chứa Đa NăngThẻ <div>
(division) là một thẻ khối (block-level element) được sử dụng rộng rãi để tạo các phần, nhóm các phần tử HTML khác lại với nhau. Nó không có ý nghĩa ngữ nghĩa cụ thể nào ngoài việc tạo ra một "hộp" để bạn có thể áp dụng CSS hoặc thao tác bằng JavaScript.
Ví dụ:
<div class="header">
<h1>Tiêu đề trang</h1>
<p>Mô tả ngắn gọn về trang.</p>
</div>
<div id="main-content">
<p>Nội dung chính của trang web.</p>
</div>
Tối ưu SEO: Mặc dù div
không có ý nghĩa ngữ nghĩa, việc sử dụng các thuộc tính id
hoặc class
một cách có ý nghĩa (ví dụ: header
, main-content
, footer
, sidebar
) sẽ giúp cấu trúc tài liệu rõ ràng hơn, dễ đọc hơn cho cả con người và công cụ tìm kiếm.
<p>
: Đoạn Văn BảnThẻ <p>
(paragraph) được sử dụng để định nghĩa một đoạn văn bản. Mỗi thẻ <p>
sẽ tự động tạo ra một khoảng trống trước và sau nó, giúp tách biệt các đoạn văn.
Ví dụ:
<p>Đây là một đoạn văn bản đầu tiên.</p>
<p>Đây là đoạn văn bản thứ hai, tiếp nối ý tưởng.</p>
Tối ưu SEO: Sử dụng <p>
cho các đoạn văn bản rõ ràng, súc tích giúp công cụ tìm kiếm dễ dàng hiểu được nội dung chính của trang. Tránh nhồi nhét từ khóa quá mức vào một đoạn văn.
<a>
: Liên Kết (Anchor)Thẻ <a>
(anchor) được sử dụng để tạo các siêu liên kết, cho phép người dùng điều hướng đến các trang khác trên cùng một trang web, hoặc đến các trang web bên ngoài.
Các thuộc tính quan trọng:
href
: Chỉ định URL đích của liên kết.target="_blank"
: Mở liên kết trong một tab hoặc cửa sổ mới của trình duyệt.rel="nofollow"
: Thông báo cho công cụ tìm kiếm không "theo dõi" liên kết này, thường được sử dụng cho các liên kết trả tiền hoặc các liên kết không đáng tin cậy.Ví dụ:
<a href="https://www.example.com">Truy cập Example.com</a>
<a href="/gioi-thieu.html" target="_blank">Tìm hiểu thêm về chúng tôi</a>
<a href="https://example.com/qc" rel="nofollow">Quảng cáo</a>
Tối ưu SEO: Sử dụng văn bản liên kết (anchor text) có ý nghĩa và liên quan đến trang đích. Tránh các anchor text chung chung như "click vào đây". Các liên kết nội bộ chất lượng cũng rất quan trọng cho SEO.
<img>
: Hình ẢnhThẻ <img>
được sử dụng để nhúng hình ảnh vào trang web. Đây là một thẻ tự đóng (self-closing tag), không có thẻ đóng.
Các thuộc tính quan trọng:
src
: Chỉ định đường dẫn đến tệp hình ảnh.alt
: Cung cấp văn bản thay thế cho hình ảnh. Đây là thuộc tính cực kỳ quan trọng cho SEO và khả năng tiếp cận (accessibility).width
và height
: Đặt chiều rộng và chiều cao của hình ảnh.Ví dụ:
<img src="anh-minh-hoa.jpg" alt="Một bức ảnh minh họa đẹp về phong cảnh" width="500" height="300">
Tối ưu SEO: Luôn luôn cung cấp thuộc tính alt
mô tả hình ảnh một cách chính xác. Tên tệp hình ảnh cũng nên có ý nghĩa (ví dụ: bai-viet-seo-huong-dan.jpg
thay vì IMG_1234.jpg
). Tối ưu hóa kích thước hình ảnh để cải thiện tốc độ tải trang.
<ul>
, <ol>
, <li>
: Danh SáchHTML cung cấp hai loại danh sách chính: danh sách không có thứ tự và danh sách có thứ tự.
<ul>
(unordered list): Tạo danh sách không có thứ tự (thường được đánh dấu bằng dấu chấm, hình tròn, hoặc hình vuông).<ol>
(ordered list): Tạo danh sách có thứ tự (thường được đánh số hoặc chữ cái).<li>
(list item): Định nghĩa một mục trong danh sách (được sử dụng bên trong cả <ul>
và <ol>
).Ví dụ:
<h3>Các món ăn yêu thích:</h3>
<ul>
<li>Phở</li>
<li>Bún chả</li>
<li>Bánh mì</li>
</ul>
<h3>Quy trình làm việc:</h3>
<ol>
<li>Nghiên cứu thị trường</li>
<li>Lập kế hoạch</li>
<li>Triển khai</li>
<li>Đánh giá</li>
</ol>
Tối ưu SEO: Danh sách giúp tổ chức nội dung một cách rõ ràng, dễ đọc. Công cụ tìm kiếm có thể dễ dàng hiểu được cấu trúc nội dung khi bạn sử dụng các thẻ danh sách một cách hợp lý.
<table>
: BảngThẻ <table>
được sử dụng để tạo bảng dữ liệu có hàng và cột.
Các thẻ liên quan:
<thead>
: Nhóm các hàng tiêu đề của bảng.<tbody>
: Nhóm các hàng dữ liệu chính của bảng.<tfoot>
: Nhóm các hàng chân bảng (thường là tổng kết hoặc ghi chú).<tr>
(table row): Định nghĩa một hàng trong bảng.<th>
(table header): Định nghĩa một ô tiêu đề trong bảng (thường được căn giữa và in đậm).<td>
(table data): Định nghĩa một ô dữ liệu trong bảng.Ví dụ:
<table>
<thead>
<tr>
<th>Sản phẩm</th>
<th>Giá</th>
<th>Tồn kho</th>
</tr>
</thead>
<tbody>
<tr>
<td>Điện thoại</td>
<td>10.000.000 VNĐ</td>
<td>150</td>
</tr>
<tr>
<td>Máy tính bảng</td>
<td>7.500.000 VNĐ</td>
<td>80</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">Thông tin cập nhật ngày 01/06/2025</td>
</tr>
</tfoot>
</table>
Tối ưu SEO: Sử dụng bảng để hiển thị dữ liệu có cấu trúc một cách rõ ràng. Đảm bảo bảng có các tiêu đề (<th>
) rõ ràng để công cụ tìm kiếm hiểu được ngữ cảnh của dữ liệu. Tránh sử dụng bảng chỉ để dàn trang.
<form>
và <input>
: Biểu Mẫu Tương TácThẻ <form>
được sử dụng để tạo các biểu mẫu cho phép người dùng nhập dữ liệu và gửi đi.
Các thuộc tính quan trọng của <form>
:
action
: Chỉ định URL nơi dữ liệu biểu mẫu sẽ được gửi đến khi người dùng nhấn nút submit.method
: Chỉ định phương thức HTTP để gửi dữ liệu (thường là GET
hoặc POST
).Thẻ <input>
là một trong những thẻ quan trọng nhất trong biểu mẫu, cho phép người dùng nhập các loại dữ liệu khác nhau.
Các thuộc tính quan trọng của <input>
:
type
: Xác định loại input (ví dụ: text
, password
, email
, number
, checkbox
, radio
, submit
, button
, v.v.).name
: Tên của trường input, được sử dụng để xác định dữ liệu khi gửi biểu mẫu.id
: ID duy nhất cho trường input, thường được sử dụng để liên kết với thẻ <label>
.placeholder
: Văn bản gợi ý hiển thị bên trong trường input khi nó trống.required
: Yêu cầu người dùng phải điền vào trường này trước khi gửi biểu mẫu.Ví dụ:
<form action="/submit-form" method="POST">
<label for="name">Họ và tên:</label><br>
<input type="text" id="name" name="fullname" placeholder="Nhập họ và tên của bạn" required><br><br>
<label for="email">Email:</label><br>
<input type="email" id="email" name="email_address" placeholder="example@gmail.com"><br><br>
<label for="message">Tin nhắn:</label><br>
<textarea id="message" name="user_message" rows="5" cols="40" placeholder="Viết tin nhắn của bạn tại đây"></textarea><br><br>
<input type="checkbox" id="newsletter" name="subscribe_newsletter" value="yes">
<label for="newsletter">Đăng ký nhận bản tin</label><br><br>
<input type="radio" id="male" name="gender" value="male">
<label for="male">Nam</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Nữ</label><br><br>
<input type="submit" value="Gửi đi">
</form>
Tối ưu SEO: Mặc dù biểu mẫu không trực tiếp ảnh hưởng đến xếp hạng SEO, nhưng một biểu mẫu dễ sử dụng, rõ ràng sẽ cải thiện trải nghiệm người dùng, từ đó gián tiếp hỗ trợ SEO. Đảm bảo các trường input có label
rõ ràng và được liên kết bằng for
và id
.
---
Ngoài các thẻ cơ bản trên, HTML5 còn giới thiệu các thẻ ngữ nghĩa giúp mô tả rõ ràng hơn cấu trúc và ý nghĩa của nội dung, từ đó cải thiện SEO và khả năng tiếp cận.
<header>
: Đại diện cho phần đầu của một tài liệu hoặc một phần. Thường chứa logo, tiêu đề trang, thanh điều hướng.<nav>
: Đại diện cho một phần chứa các liên kết điều hướng chính.<main>
: Đại diện cho nội dung chính và độc lập của tài liệu. Chỉ nên có một thẻ <main>
trên mỗi trang.<article>
: Đại diện cho một phần nội dung độc lập, có thể phân phối và tái sử dụng một cách độc lập (ví dụ: bài viết blog, bình luận, tin tức).<section>
: Đại diện cho một phần nội dung có chủ đề chung. Nên có một tiêu đề (<h1>
đến <h6>
) bên trong <section>
.<aside>
: Đại diện cho nội dung có liên quan nhưng không phải là một phần chính của nội dung xung quanh (ví dụ: thanh bên, quảng cáo).<footer>
: Đại diện cho phần chân của một tài liệu hoặc một phần. Thường chứa thông tin bản quyền, liên hệ, liên kết bổ sung.Ví dụ:
<header>
<h1>Tên Trang Web</h1>
<nav>
<ul>
<li><a href="/">Trang chủ</a></li>
<li><a href="/san-pham">Sản phẩm</a></li>
<li><a href="/lien-he">Liên hệ</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>Tiêu đề bài viết</h2>
<p>Nội dung của bài viết...</p>
</article>
<section>
<h3>Các sản phẩm nổi bật</h3>
<p>Giới thiệu về các sản phẩm...</p>
</section>
</main>
<footer>
<p>© 2025 Tên Công Ty. Bảo lưu mọi quyền.</p>
</footer>
Tối ưu SEO: Sử dụng các thẻ ngữ nghĩa giúp công cụ tìm kiếm hiểu rõ hơn về cấu trúc và mức độ quan trọng của các phần nội dung trên trang. Điều này cải thiện khả năng thu thập dữ liệu (crawling) và lập chỉ mục (indexing), góp phần tăng cường SEO.
---
Nắm vững cấu trúc tài liệu HTML và cách sử dụng các thẻ cơ bản là bước đi đầu tiên và quan trọng nhất trên con đường trở thành nhà phát triển web. Không chỉ giúp bạn xây dựng các trang web có cấu trúc rõ ràng, dễ bảo trì, mà còn là nền tảng vững chắc để tối ưu hóa công cụ tìm kiếm (SEO) và cải thiện trải nghiệm người dùng. Hãy thực hành thường xuyên, thử nghiệm với các thẻ và thuộc tính khác nhau để củng cố kiến thức của bạn. Chúc bạn thành công trên hành trình khám phá thế giới lập trình web!