← HTML: cấu trúc & semantic

Bài 13 · Vận dụng · 26 phút

Dự án: Landing Page

Biên soạn bởi Nguyễn Anh Tuấn

Dự án 3: landing page bằng HTML semantic - hero (header), các section giới thiệu, lời kêu gọi hành động (CTA), form đăng ký và footer. Cấu trúc để CSS làm đẹp.

Dự án thứ ba: một landing page (trang đích). Đây là trang quảng bá một sản phẩm hay dịch vụ, và nó chỉ nhắm MỘT mục tiêu: khiến người xem làm một hành động (đăng ký, dùng thử…). Vì thế cả trang được dựng để dẫn dắt người xem theo một mạch tới hành động đó. Bản đồ trang nhìn rất khác hai dự án trước - nó là một cột nhiều khúc:

<header> heroh1: thông điệp chínhCTA chính<section> Lợi ích<section> Cách hoạt động<section> Đánh giáĐăng ký ngay (CTA lặp)<form id="dang-ky"><footer>
Landing page xếp dọc: hero (header + CTA) → các section thuyết phục → CTA lặp → form đăng ký → footer.
  • Landing page nhắm MỘT mục tiêu/hành động duy nhất.
  • Bố cục một cột nhiều khúc: hero, các section, form, footer.
  • CTA (lời kêu gọi hành động) là trung tâm, lặp lại nhiều lần.

Khu trên cùng gọi là hero - thứ người xem thấy đầu tiên. Dùng <header> chứa h1thông điệp chính (ngắn, rõ lợi ích), một câu phụ, và một CTA chính.

hero.html · khu hero của landing (mở .html bằng trình duyệt)

<header>
  <h1>Học HTML trong 2 tuần cùng Mèo Ham Học</h1>
  <p>Khoá học tương tác, miễn phí, tiếng Việt.</p>
  <a href="#dang-ky">Đăng ký học ngay</a>
</header>
  • hero = header chứa h1 thông điệp chính + câu phụ + CTA.
  • h1 nói rõ lợi ích, không phải tên thương hiệu suông.
  • Đây là h1 duy nhất của cả trang.

CTA (Call To Action - lời kêu gọi hành động) là nút/liên kết mời người dùng làm điều mèo con muốn. Câu hỏi quan trọng: dùng button hay a? Luật cũ từ bài Liên kết, ảnh & đa phương tiện: button cho hành động TRÊN trang; a để ĐI tới một khu/trang khác.

Mẹo hay trên landing: cho CTA là a href="#dang-ky" để bấm vào là trang cuộn tới phần tử có id="dang-ky" - một liên kết nội bộ trong cùng trang.

cta.html · liên kết nội bộ nhảy tới form bằng id

<!-- CTA cuộn xuống form -->
<a href="#dang-ky">Đăng ký ngay</a>

<!-- ... ở xa phía dưới ... -->
<form id="dang-ky">
  <!-- các trường đăng ký -->
</form>

Lặp CTA là chủ ý

Landing thường lặp CTA nhiều lần (sau hero, sau phần lợi ích, cuối trang). Đó KHÔNG phải thừa: người xem cuộn tới đoạn nào sẵn sàng là có ngay nút để bấm, không phải tìm ngược lên đầu.

Giữa hero và footer là một loạt <section> dẫn người xem theo mạch thuyết phục: lợi ích, cách hoạt động, đánh giá của người dùng. Mỗi section một h2. Khép lại bằng <form> đăng ký - vẫn đủ label gắn for/id và required như ở bài Bảng & biểu mẫu (form) - và mang id để CTA nhảy tới.

than-landing.html · các section + form (rút gọn)

<main>
  <section>
    <h2>Vì sao nên học?</h2>
    <p>Tương tác, dễ hiểu, có sơ đồ minh hoạ.</p>
  </section>

  <section>
    <h2>Học thế nào?</h2>
    <p>Mỗi bài một mục tiêu, làm bài tập tự kiểm.</p>
  </section>

  <form id="dang-ky">
    <label for="email">Email nhận khoá học</label>
    <input type="email" id="email" required />
    <button type="submit">Đăng ký</button>
  </form>
</main>
  • Các section xếp theo mạch thuyết phục, mỗi section một h2.
  • form đăng ký có id để CTA dạng a href="#id" nhảy tới.
  • form vẫn đủ label + required như đã học, dù chưa CSS.

Thành thật mà nói: landing page là loại trang phụ thuộc CSS nhiều nhất để trông lung linh - hero nền lớn, nút bắt mắt, section xen kẽ màu. Khi chưa có CSS, landing của mèo con sẽ rất mộc. Nhưng đó chính là lúc câu thần chú của khoá đúng nhất: cấu trúc đúng trước, đẹp sau.

Trung thực

Đừng nản khi landing chưa CSS trông sơ sài. Cấu trúc semantic đúng (hero là header, các section có h2, CTA đúng thẻ, form có id) là bộ xương vững. Thêm CSS lên bộ xương đúng thì nhanh và gọn; còn dựng CSS trên một mớ div lộn xộn mới thật sự khổ.

Chạy checklist tự kiểm trước khi coi là xong:

  • Hero là header chứa đúng một h1 (thông điệp chính của trang).
  • Mỗi section thuyết phục có một h2; không nhảy cóc cấp.
  • CTA chọn đúng thẻ: button (hành động) hoặc a href="#id" (nhảy tới khu).
  • Form đăng ký có id, mỗi input có label, ô bắt buộc có required.
  • head có title + meta description (và Open Graph nếu muốn share).

Bước tiếp theo

Ba dự án, ba kiểu trang - mèo con đã thấy semantic phục vụ đủ mọi mục đích. Bài cuối khoá là dự án tổng kết: dựng một trang giới thiệu khoá học, ghép mọi thứ và tự kiểm bằng validator.

Câu hỏi thường gặp

Landing page là trang "đích" của một chiến dịch, nhắm vào MỘT mục tiêu duy nhất (đăng ký, dùng thử, mua…). Vì thế nó ít đường rẽ, dẫn dắt người xem theo một mạch tới hành động đó. Trang thường (vd trang chủ) có nhiều lối đi hơn.

CTA (Call To Action - lời kêu gọi hành động) là nút hoặc liên kết mời người dùng làm điều mèo con muốn họ làm: "Đăng ký", "Dùng thử miễn phí", "Tải về". Landing page xoay quanh CTA.

Tuỳ việc nó làm. Nếu CTA mở một hộp thoại hay xử lý ngay trên trang thì dùng button. Nếu CTA đưa người dùng TỚI một khu khác (vd cuộn xuống form đăng ký, hoặc sang trang khác) thì dùng a. Mẹo hay trên landing: a href="#dang-ky" để nhảy tới phần tử có id="dang-ky" ngay trong trang.

Đó là CHỦ Ý, không phải lỗi. Người xem cuộn tới đoạn nào sẵn sàng hành động là có ngay một CTA ở đó, không phải cuộn ngược lên đầu. Lặp CTA hợp lý (sau hero, sau phần lợi ích, cuối trang) là cách làm phổ biến và đúng.

Landing là loại trang phụ thuộc CSS NHIỀU NHẤT để "đẹp lung linh". Nhưng chính vì vậy, cấu trúc đúng càng quan trọng: hero, các section, CTA, form đặt đúng thẻ thì khi thêm CSS, trang lên rất nhanh. Cấu trúc đúng trước, đẹp sau - đặc biệt đúng ở đây.

Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.

Tick những điều em tự tin làm được sau khi học bài này. 0/6

Trả lời vài câu để chắc rằng em đã nắm bài.

Câu 1/3 Điểm: 0

Đặc trưng của một landing page là gì?

Bài tập về nhà

  1. 1

    Khu hero

    Viết khu hero của landing: header chứa h1 thông điệp chính và một CTA chính.

    ✅ Hoàn thành khi: header chứa một h1 (thông điệp), một câu phụ, và một CTA (button hoặc a) nổi bật.

  2. 2

    CTA: button hay a?

    Chọn thẻ cho mỗi CTA: (a) "Cuộn xuống đăng ký" nhảy tới form trong trang; (b) "Mở video giới thiệu" bật trình phát ngay trên trang.

    ✅ Hoàn thành khi: (a) <a href="#dang-ky"> (đi tới khu khác); (b) <button> (hành động trên trang).

  3. 3

    Anchor link trong trang

    Cho form có id="dang-ky". Viết một CTA dạng liên kết cuộn tới đúng form đó.

    ✅ Hoàn thành khi: <a href="#dang-ky">…</a> trỏ tới phần tử <form id="dang-ky">; bấm vào là trang cuộn tới form.

  4. 4

    Ba section thuyết phục

    Viết ba section nối tiếp: "Lợi ích", "Cách hoạt động", "Đánh giá", mỗi section một h2.

    ✅ Hoàn thành khi: Ba <section> trong main, mỗi section mở đầu bằng h2 đúng chủ đề; chỉ một h1 (ở hero).

  5. 5

    Form đăng ký

    Viết form đăng ký có id="dang-ky" gồm ô Tên, ô Email (bắt buộc, đúng định dạng) và nút "Đăng ký".

    ✅ Hoàn thành khi: form id="dang-ky" có 2 cặp label+input (for/id), Email type="email" required, và một button.

  6. 6

    Chạy checklist

    Rà landing page hoàn chỉnh theo checklist trong bài và sửa mọi điểm chưa đạt.

    ✅ Hoàn thành khi: Đạt: hero là header có h1; section có h2; CTA chọn đúng thẻ; form có label/required; một h1; meta đủ.