HTML5 có một thuộc tính toàn cục mới hidden
, có thể được sử dụng để ẩn nội dung.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS có display:none
quy tắc, quy tắc này cũng có thể được sử dụng để ẩn nội dung.
article { display:none; }
Nhìn bề ngoài, chúng giống hệt nhau. Sự khác biệt về mặt ngữ nghĩa là gì? Về mặt tính toán?
Tôi nên xem xét những nguyên tắc nào khi sử dụng cái này hay cái kia?
TIA.
CHỈNH SỬA : Dựa trên phản hồi của @ newtron (bên dưới), tôi đã tìm kiếm nhiều hơn. Các hidden
thuộc tính được tranh luận sôi nổi trong năm ngoái và (rõ ràng) hầu như không làm cho nó vào spec HTML5. Một số người cho rằng nó là thừa và không có mục đích. Từ những gì tôi có thể nói, đánh giá cuối cùng là: Nếu tôi chỉ nhắm mục tiêu các trình duyệt web, không có sự khác biệt. (Một trang thậm chí còn khẳng định rằng các trình duyệt web được sử dụng display:none
để triển khai thuộc tính ẩn.) Nhưng nếu tôi đang xem xét khả năng truy cập (ví dụ: có lẽ tôi mong muốn nội dung của mình được trình đọc màn hình đọc), thì có một sự khác biệt. Quy tắc CSS display:none
có thể ẩn nội dung của tôi khỏi trình duyệt web, nhưng quy tắc aria tương ứng (ví dụ:aria-hidden="false"
) có thể cố gắng đọc nó. Vì vậy, bây giờ tôi đồng ý rằng câu trả lời của @ newtron là đúng, mặc dù có lẽ (có thể cho là) không rõ ràng như tôi có thể muốn. Cảm ơn @newtron vì sự giúp đỡ của bạn.
hidden
thuộc tính tồn tại, nhưng chắc chắn là một câu hỏi hay vì nó dường như vi phạm sự phân tách cấu trúc / bản trình bày.