Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Landing page là trang đơn giới thiệu một sản phẩm hay dịch vụ, và là bài thực hành tuyệt vời để rèn HTML, CSS và tư duy responsive. Bài này hướng dẫn bạn dựng một landing page gồm phần đầu trang, tính năng, và lời kêu gọi hành động, chạy tốt từ điện thoại đến màn hình lớn.
Trước khi viết code, hãy phác thảo các khối nội dung. Một landing page cơ bản thường có:
Dùng các thẻ như header, main, section, footer thay vì toàn div. Cách này giúp trình đọc màn hình và công cụ tìm kiếm hiểu cấu trúc trang tốt hơn.
<header class="site-header">
<a class="logo" href="#">MyBrand</a>
<nav><a href="#features">Tính năng</a> <a href="#contact">Liên hệ</a></nav>
</header>
<main>
<section class="hero">
<h1>Quản lý công việc dễ dàng hơn</h1>
<p>Một công cụ gọn nhẹ giúp bạn tập trung vào điều quan trọng.</p>
<a class="btn" href="#contact">Dùng thử ngay</a>
</section>
<section id="features" class="features">
<article class="card"><h2>Nhanh</h2><p>Thao tác chỉ với vài cú nhấp.</p></article>
<article class="card"><h2>Gọn</h2><p>Giao diện sạch, không rối mắt.</p></article>
<article class="card"><h2>Linh hoạt</h2><p>Dùng được trên mọi thiết bị.</p></article>
</section>
</main>
<footer id="contact">Liên hệ: hello@example.com</footer>Đừng quên thẻ <meta name="viewport" content="width=device-width, initial-scale=1"> trong head. Thiếu dòng này, trình duyệt di động sẽ thu nhỏ cả trang và responsive không hoạt động.
Mobile first nghĩa là viết style cho màn hình nhỏ trước, rồi dùng media query để mở rộng cho màn hình lớn. Cách này thường cho code gọn hơn so với thu nhỏ từ giao diện desktop.
* { box-sizing: border-box; margin: 0; }
body { font-family: system-ui, sans-serif; line-height: 1.6; color: #222; }
.site-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; }
.site-header nav a { margin-left: 16px; text-decoration: none; color: #333; }
.hero { text-align: center; padding: 64px 20px; background: linear-gradient(135deg, #5b8def, #8e5bef); color: #fff; }
.hero h1 { font-size: 2rem; margin-bottom: 12px; }
.btn { display: inline-block; margin-top: 20px; padding: 12px 24px; background: #fff; color: #5b43d6; border-radius: 8px; text-decoration: none; font-weight: 600; }
.features { display: grid; gap: 16px; padding: 40px 20px; }
.card { padding: 20px; border: 1px solid #e5e7eb; border-radius: 12px; }
footer { text-align: center; padding: 24px; background: #111; color: #ddd; }
@media (min-width: 768px) {
.hero h1 { font-size: 3rem; }
.features { grid-template-columns: repeat(3, 1fr); max-width: 1000px; margin: 0 auto; }
}Mở trang trong Chrome, bấm F12 rồi chọn biểu tượng thiết bị di động để xem ở nhiều kích thước. Kéo thay đổi chiều rộng và để ý chỗ nào bố cục bị vỡ. Điểm ngắt 768px chỉ là gợi ý, hãy đặt điểm ngắt ở nơi nội dung của bạn thật sự cần thay đổi.
box-sizing: border-box, khiến phần tử bị tràn khỏi khung.max-width và phần trăm.Một trang đẹp chưa chắc đã hiệu quả. Hãy tự hỏi: người lạ vào trang có hiểu trong năm giây sản phẩm này làm gì không? Tiêu đề nên nói về lợi ích với người dùng thay vì mô tả tính năng khô khan. Chỉ nên có một lời kêu gọi chính, lặp lại ở đầu và cuối trang, để người xem không bị phân tâm bởi quá nhiều lựa chọn. Ảnh nên được nén nhỏ, thêm thuộc tính alt mô tả và thuộc tính loading="lazy" cho các ảnh nằm ở xa phần đầu trang. Cuối cùng, kiểm tra tốc độ tải bằng công cụ trong DevTools, vì trang chậm sẽ mất người xem trước khi họ kịp đọc.
Landing page là dự án nhỏ nhưng dạy bạn rất nhiều: ngữ nghĩa HTML, Flexbox, Grid, media query và tư duy thiết kế cho nhiều thiết bị. Hãy thử đổi màu sắc, thêm phần bảng giá hoặc ý kiến khách hàng để biến nó thành bản của riêng bạn.
Nếu bạn muốn học thiết kế web một cách có hệ thống, hãy khám phá các khóa học tại codebem.com để có lộ trình rõ ràng hơn.
Nguyễn Đình Cường
0 comment