hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
      • NodeJS
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
      • MongoDB
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
      • Spring Boot
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Lập trình Python
    • Git và Github
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
    • Mạng và truyền thông
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • HTML cơ bản – Lộ trình 16 bài
HTML cơ bản – Bài 07: Tổ chức trang bằng HTML có ngữ nghĩa

HTML cơ bản – Bài 07: Tổ chức trang bằng HTML có ngữ nghĩa

  • 19-10-2026
  • Toanngo92
  • 0 Comments

Bạn sẽ chia trang thành vùng đầu trang, điều hướng, nội dung chính, bài viết và chân trang. Mục tiêu là biết chọn phần tử theo vai trò, không thay tất cả div bằng section một cách máy móc.

Lộ trình này học qua website “Góc học web”: trang chủ, trang bài viết và trang liên hệ. Mỗi bài giải quyết một việc cụ thể. Các bài về từng thẻ là tài liệu tra cứu, không phải danh sách bắt buộc học thuộc.

Trong bài này

  1. Hãy phác nội dung trước bố cục
  2. Các vùng chính của một trang
  3. article, section và aside khác nhau thế nào?
  4. Heading và thứ tự đọc đi cùng cấu trúc
  5. Tự chọn thẻ thay vì học thuộc danh sách

Mục lục

  • Hãy phác nội dung trước bố cục
  • Các vùng chính của một trang
  • article, section và aside khác nhau thế nào?
  • Heading và thứ tự đọc đi cùng cấu trúc
  • Tự chọn thẻ thay vì học thuộc danh sách
  • Ví dụ để tự chạy
  • Kết quả hiển thị
  • Lỗi thường gặp và cách sửa
  • Tự kiểm tra
  • Tra cứu khi cần

Hãy phác nội dung trước bố cục

Trang chủ Góc học web có tên website, menu, phần giới thiệu và danh sách bài học. Bài viết có thể đứng riêng khi được chia sẻ. Một vùng gợi ý đọc thêm có liên quan nhưng không phải nội dung chính. Những vai trò này giúp chọn phần tử trước khi nghĩ tới hai cột hoặc màu nền.

HTML có ngữ nghĩa giúp trình duyệt và công cụ hỗ trợ nhận biết các vùng nội dung. Nó không tự tạo một giao diện đẹp hoặc bảo đảm trang hoàn toàn dễ tiếp cận; văn bản, nhãn và thứ tự điều hướng vẫn phải được kiểm tra.

Các vùng chính của một trang

Phần tửKhi nào dùng
headerNội dung giới thiệu của trang hoặc của một phần nội dung.
navVùng điều hướng quan trọng, không phải mọi nhóm liên kết nhỏ.
mainNội dung chính của tài liệu; ví dụ dùng một main đang hiển thị.
footerThông tin kết thúc, liên hệ hoặc thông tin liên quan đến vùng chứa.

header trong body khác head của tài liệu. Một article có thể có header riêng để nhóm tên và thông tin bài viết. Không cần mỗi trang chỉ được có đúng một header trong mọi tình huống.

article, section và aside khác nhau thế nào?

article là nội dung tương đối độc lập, như một bài blog hoặc mục tin. section nhóm một chủ đề trong tài liệu và thường có heading mô tả. aside là nội dung phụ có liên quan, không được định nghĩa đơn thuần là một cột nằm bên phải.

Nếu chỉ cần một vùng chứa để áp dụng CSS hoặc thao tác JavaScript mà không có vai trò ngữ nghĩa phù hợp, div vẫn là lựa chọn hợp lệ. span là vùng chứa trong dòng thường gặp. Không đặt section chỉ vì bạn muốn có một khối vuông trên giao diện.

Heading và thứ tự đọc đi cùng cấu trúc

Trong ví dụ, h1 nêu tên chính, h2 mở nhóm Bài học mới, h3 đặt tên một mục bài trong nhóm. ID được dùng để nối aria-labelledby với heading mô tả vùng. Ưu tiên phần tử HTML có sẵn trước khi bổ sung ARIA không cần thiết.

Nếu CSS đặt aside sang trái hoặc phải, vị trí hiển thị không nên làm luồng đọc trong mã trở nên vô lý. Hãy đọc HTML từ trên xuống như một bài viết; người dùng bàn phím và công cụ hỗ trợ cần một trình tự có nghĩa.

Tự chọn thẻ thay vì học thuộc danh sách

Hãy tự hỏi: đây là nội dung chính, một bài độc lập hay một chủ đề con? Nếu chưa trả lời được, việc đổi div sang article chỉ để “chuẩn SEO” thường không giúp cấu trúc rõ hơn. Khi một trang có nhiều vùng điều hướng, có thể đặt nhãn riêng giúp phân biệt.

Trong bài 8, chúng ta sẽ ghép các phần này thành trang chủ và trang bài viết hoàn chỉnh. Tất cả vẫn hiển thị theo luồng tự nhiên của trình duyệt, chưa có yêu cầu dựng layout bằng bảng hay dùng nhiều khoảng trắng.

Ví dụ để tự chạy

Tạo một tệp HTML để thử đoạn mã sau. Nếu đây là đoạn trích trong body, hãy đặt nó vào bộ khung tài liệu đã học ở bài 3. Bộ mã tải về có sẵn ví dụ đầy đủ của bài này.

<header><p>Góc học web</p><nav aria-label="Điều hướng chính"><a href="index.html">Trang chủ</a> · <a href="bai-viet.html">Bài viết</a> · <a href="lien-he.html">Liên hệ</a></nav></header>
<main id="noi-dung">
  <h1>Góc học web</h1>
  <section aria-labelledby="bai-moi">
    <h2 id="bai-moi">Bài học mới</h2>
    <article><h3><a href="bai-viet.html">Bắt đầu với HTML</a></h3>
    <p>Tạo trang web đầu tiên bằng HTML.</p></article>
  </section>
  <aside aria-labelledby="goi-y"><h2 id="goi-y">Gợi ý đọc thêm</h2>
    <p>Tra cứu thẻ khi gặp tình huống cần dùng.</p></aside>
</main>
<footer><p>Góc học web — Ví dụ học HTML của Học Viết Code.</p></footer>

Kết quả hiển thị

Trang hiển thị tên website, menu và nội dung theo thứ tự đọc. Những phần tử ngữ nghĩa không tự tạo cột; đây là cấu trúc sẵn sàng để học CSS.

Mở ví dụ bài 07 trong tab riêng · Tải bộ ví dụ 16 bài và website hoàn chỉnh

Lỗi thường gặp và cách sửa

  • Dùng table để chia cột trang: dành table cho dữ liệu dạng bảng.
  • Dùng aside chỉ vì nó nằm bên phải: chọn theo vai trò nội dung phụ.
  • Thêm role=”button” cho div dù có thể dùng button: ưu tiên phần tử sẵn có.

Tự kiểm tra

  • Chọn thẻ cho một bài độc lập với heading, tác giả và nội dung.
  • Giải thích tại sao div vẫn cần thiết trong HTML hiện đại.

Tra cứu khi cần

  • Thẻ article trong HTML5
  • Thẻ section trong HTML
  • Thẻ nav trong HTML5
  • Thẻ main trong HTML

Tài liệu gốc về chủ đề này trên MDN / HTML Standard

Mục lục lộ trình HTML 16 bài · Thư viện bài HTML tra cứu

← Bài trước Bài tiếp theo →

Bài viết liên quan:

HTML cơ bản – Bài 06: Hình ảnh, văn bản thay thế và chú thích
HTML cơ bản – Bài 08: Ghép trang chủ và trang bài viết hoàn chỉnh
HTML cơ bản – Bài 09: Trình bày bảng dữ liệu đúng mục đích
HTML cơ bản – Bài 10: Tạo biểu mẫu liên hệ đầu tiên
HTML cơ bản – Bài 11: Chọn đúng input, checkbox, radio và select
HTML cơ bản – Bài 12: Kiểm tra form, name/value và GET/POST
HTML cơ bản – Bài 13: Audio, video, phụ đề và nội dung nhúng
HTML cơ bản – Bài 14: Thành phần sẵn có: details, summary và dialog
HTML cơ bản – Bài 15: Kiểm tra cấu trúc, bàn phím và lỗi HTML
HTML cơ bản – Bài 16: Hoàn thiện website và chuẩn bị học CSS
HTML cơ bản – Bài 01: HTML là gì? Tạo trang web đầu tiên
HTML cơ bản – Bài 02: Phần tử, thuộc tính và cách lồng HTML

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 05: Đơn vị và kích thước: px, rem, %, min và max

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 02: Selector và class: chọn đúng phần tử cần sửa

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 01: Kết nối CSS với HTML và sửa quy tắc đầu tiên

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 20: Hoàn thiện website và sửa lỗi bằng DevTools

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 03: Vì sao CSS không có tác dụng? Cascade và specificity

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×