Khi thiết kế các trang web hiện đại, việc tối ưu hóa không gian và cải thiện trải nghiệm người dùng là những yếu tố vô cùng quan trọng. Thẻ <details>
trong HTML là một công cụ tuyệt vời giúp bạn thực hiện điều này. Nó cho phép bạn ẩn hoặc hiển thị các phần nội dung tùy thuộc vào yêu cầu của người dùng, giúp trang web trở nên gọn gàng hơn.
Giới thiệu về thẻ <details>
Thẻ <details>
là một phần tử HTML được giới thiệu trong HTML5. Chúng dùng để tạo ra các khối nội dung có thể được mở ra và đóng lại theo lựa chọn của người dùng. Kết hợp cùng với thẻ <summary>
để tạo phần tiêu đề cho khối nội dung này, bạn có thể dễ dàng kiểm soát những phần nội dung nào sẽ được hiển thị hoặc ẩn đi.
Cách sử dụng cơ bản
Để sử dụng thẻ <details>
, bạn chỉ cần bao quanh nội dung muốn ẩn/hiện bằng thẻ này và sử dụng thẻ <summary>
để định nghĩa tiêu đề.
Ví dụ cơ bản như sau:
<details>
<summary>Thông tin thêm</summary>
<p>Đây là nội dung chi tiết được ẩn đi.</p>
</details>
Khi trang web được tải, mục "Thông tin thêm" sẽ hiển thị như một tiêu đề. Khi người dùng nhấp vào tiêu đề này, nội dung bên trong sẽ được mở ra.
Tùy chỉnh và nâng cao
Mở mặc định
Bạn có thể làm cho khối nội dung mở mặc định bằng cách thêm thuộc tính open
vào thẻ <details>
:
<details open>
<summary>Thông tin thêm</summary>
<p>Đây là nội dung chi tiết được ẩn đi.</p>
</details>
Sử dụng CSS để tùy chỉnh
CSS có thể giúp bạn tùy chỉnh giao diện của thẻ <details>
và <summary>
để phù hợp với thiết kế của trang web:
details summary {
cursor: pointer;
font-weight: bold;
}
details[open] summary {
color: blue;
}
details summary::marker {
color: red;
}
Thêm JavaScript để kiểm soát động
JavaScript giúp bạn phản ứng với sự kiện mở/đóng của <details>
:
document.querySelector('details').addEventListener('toggle', (event) => {
if (event.target.open) {
console.log('Nội dung đã được mở');
} else {
console.log('Nội dung đã được đóng');
}
});
Ứng dụng thực tế
Việc sử dụng thẻ <details>
có rất nhiều ứng dụng thực tế, đặc biệt là trong các tình huống sau:
- FAQs (Câu hỏi thường gặp): Các câu hỏi có thể được nhấp để hiển thị câu trả lời.
- Điều khoản và điều kiện: Để không làm rối mắt trang web, người dùng có thể nhấp để xem chi tiết các điều khoản.
- Tóm tắt bài viết: hiển thị nhanh tóm tắt và cho phép người dùng nhấp để đọc thêm chi tiết.
Kết luận
Thẻ <details>
là một giải pháp tuyệt vời cho việc quản lý nội dung mở rộng trên trang web. Không chỉ giúp trang web của bạn trở nên gọn gàng hơn, nó còn cải thiện trải nghiệm người dùng bằng cách cung cấp khả năng kiểm soát nội dung theo cách họ mong muốn. Hãy tận dụng sức mạnh của thẻ <details>
để làm phong phú thêm trang web của bạn!
Comments