HTML5 memiliki atribut global baru hidden
, yang dapat digunakan untuk menyembunyikan konten.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS memiliki display:none
aturan, yang juga dapat digunakan untuk menyembunyikan konten.
article { display:none; }
Secara visual, keduanya identik. Apa perbedaannya secara semantik? Secara komputasi?
Pedoman apa yang harus saya pertimbangkan tentang kapan harus menggunakan salah satunya?
TIA.
EDIT : Berdasarkan tanggapan @ newtron (di bawah), saya melakukan lebih banyak pencarian. The hidden
atribut itu diperebutkan tahun lalu dan (ternyata) hampir tidak berhasil masuk ke HTML5 spec. Beberapa berpendapat itu mubazir dan tidak memiliki tujuan. Dari apa yang saya tahu, evaluasi terakhirnya adalah: Jika saya hanya menargetkan browser web, tidak ada perbedaan. (Satu halaman bahkan menegaskan bahwa browser web digunakan display:none
untuk mengimplementasikan atribut tersembunyi.) Tetapi jika saya mempertimbangkan aksesibilitas (misalnya, mungkin saya mengharapkan konten saya dibaca oleh pembaca layar), maka ada perbedaan. Aturan CSS display:none
mungkin menyembunyikan konten saya dari browser web, tetapi aturan aria yang sesuai (mis.,aria-hidden="false"
) mungkin mencoba membacanya. Jadi, saya sekarang setuju bahwa jawaban @ newtron benar, meskipun mungkin (bisa dibilang) tidak sejelas yang saya suka. Terima kasih @newtron atas bantuan Anda.
sumber
hidden
atribut itu ada, tetapi tentu saja pertanyaan yang bagus karena tampaknya melanggar pemisahan struktur / presentasi.Jawaban:
Perbedaan utama tampaknya adalah bahwa
hidden
elemen selalu tersembunyi terlepas dari penyajiannya:http://dev.w3.org/html5/spec/Overview.html#the-hidden-attribute
Karena CSS dapat menargetkan jenis media / presentasi yang berbeda,
display: none
akan bergantung pada presentasi yang diberikan. Misalnya, beberapa elemen mungkin adadisplay: none
saat dilihat di browser desktop, tetapi tidak di browser seluler. Atau, disembunyikan secara visual tetapi masih tersedia untuk pembaca layar.sumber