Click vào vùng div để điều hướng đến liên kết
Ngày cập nhật: 2022-05-05 | Lượt xem: 3259 | Độ dài: 285 từ | Chuyên mục: CSS | Tìm kiếm
Khi xây dựng trang danh sách sản phẩm hoặc trang hiển thị tin tức trên website, bên cạnh việc click vào tiêu đề để vào trang chi tiết, người dùng cũng mong muốn có thể click vào hình thu nhỏ (thumbnail) để điều hướng. Tối ưu hơn nữa, toàn bộ vùng item con nên có tính tương tác như một nút nhấn điều hướng.
Một số phương pháp tiếp cận phổ biến:
- Đóng gói bằng thẻ : Đặt toàn bộ item trong thẻ sẽ gây khó khăn cho việc định dạng bố cục và vi phạm nguyên tắc ngữ nghĩa HTML.
- Dùng JavaScript xử lý sự kiện click: Dù logic rõ ràng nhưng khiến code rườm rà, ảnh hưởng đến hiệu suất và khả năng tối ưu SEO.
Giải pháp tối ưu với kỹ thuật inset trong CSS
Tình cờ tham khảo các thành phần mẫu của Tailwind CSS, mình phát hiện một giải pháp vô cùng tinh gọn cho yêu cầu này. Ví dụ cụ thể có tại: Tailwind UI - Product Lists.
Cách triển khai chi tiết:
Bằng cách sử dụng một thẻ <span>
ẩn với thuộc tính position: absolute
, phủ kín vùng cần click và đặt bên trong thẻ <a>
, ta có thể mở rộng vùng click mà không làm thay đổi cấu trúc HTML ban đầu.
HTML mẫu:
|
|
CSS tương ứng:
|
|
Ưu điểm vượt trội:
- Tối giản code: Chỉ cần 2 class CSS cơ bản và 1 phần tử
<span>
phụ trợ. - Duy trì ngữ nghĩa HTML: Thẻ
<a>
chỉ bao quanh phần tiêu đề cần thiết, không làm rối cấu trúc DOM. - Tương thích tốt: Hoạt động trên mọi trình duyệt hiện đại, kể cả các thiết bị cảm ứng.
Cách tiếp cận này tuy hơi vòng vo nhưng cực kỳ hiệu quả khi kết hợp với các framework CSS như Tailwind, giúp cân bằng giữa tính ứng dụng và tính thẩm mỹ trong phát triển giao diện.