HTML5shiv vs Dean Edwards IE7-js vs Modernizr - Mana yang Harus Dipilih?

113

Saya ingin membangun situs HTML5 pertama saya dan sedang bekerja dengan IE.

Ada html5shiv, Dean Edwards ie7-js dan kemudian Modernizr. Apakah semua ini sebagian besar sama? Saya bingung harus menempuh rute mana.

PaulM
sumber
1
+10 untuk pertanyaan yang bagus.
Snekse

Jawaban:

124

Tidak, mereka sama sekali tidak sama; mereka melakukan hal yang sangat berbeda.

  • html5shiv memungkinkan Anda menggunakan tag HTML5 baru di versi IE yang tidak memahaminya. Tanpanya, IE akan mencekik tag tersebut, jadi Anda memerlukannya jika Anda ingin menggunakan tag tersebut. Jangan berharap itu membuat tag benar-benar melakukan apa pun di IE! Itu hanya menghentikan browser yang mengeluh tentang mereka.

  • modernizr menetapkan sekumpulan kelas di HTML Anda, tergantung pada fitur yang tersedia, yang dapat Anda gunakan untuk mengubah tata letak Anda sesuai dengan apa yang didukung browser. Ini juga memungkinkan Anda untuk menggunakan tag HTML5 baru di IE , seperti html5shiv.

  • ie7.js (serta ie8.jsdan ie9.js) menggunakan Javascript untuk menyesuaikan beberapa fungsionalitas yang hilang ke IE.

Sejauh yang saya ketahui tidak ada persilangan di antara mereka (selain dari html5shiv / modernizr), jadi Anda dapat menggunakan kombinasi apa pun, tergantung pada fitur apa yang perlu Anda terapkan.

Sementara saya membahas topik ini, dan karena Anda bertanya tentang alat untuk membuat IE lebih kompatibel dengan browser lain, saya sarankan Anda juga melihat ke CSS3Pie , yang akan membuat hidup Anda jauh lebih bahagia jika Anda berencana menggunakan sudut membulat di situs Anda. (ditambah satu atau dua fitur lainnya).

Ini juga tidak memiliki persilangan dengan tiga produk lain yang Anda sebutkan, meskipun semuanya bertujuan untuk membuat versi lama IE sedikit lebih mudah untuk digunakan.

Spudley
sumber
Itulah jawaban yang saya cari. Terima kasih :)
PaulM
64
Modernizr pada dasarnya mencakup seluruh html5shiv.
Paul Irish
Gambaran yang fantastis. Tentu saja memberi saya arahan juga. Terima kasih!
ebrandell
2
@RoyiNamir - Modernizr menetapkan kelas dalam HTML. Itu sendiri tidak melakukan apa pun dengan kelas-kelas itu, tetapi Anda dapat menggunakan JS libs atau CSS lain untuk mereferensikan kelas-kelas itu dan melakukan apa pun yang Anda inginkan, dengan cara yang sama seperti yang Anda lakukan untuk kelas lain dalam kode HTML Anda. Contoh: Anda ingin menggunakan a placeholderdi tag input Anda. Tetapi IE lama tidak mendukungnya. Modernizr akan menambahkan kelas no-placeholderdi IE; Anda dapat menulis kode Javascript yang mereferensikan kelas ini sehingga Anda dapat mengimplementasikan skrip untuk meniru fitur placeholder tanpa menjalankannya di browser yang tidak membutuhkannya. Harapan yang menjelaskannya
Spudley
1
IE9.jsmelakukan semua hal yang dilakukan html5shiv juga.
Phil
12

Cara termudah untuk memulai proyek HTML5 baru menggunakan initializr . Ini akan memandu dan membiarkan Anda membangun, mengunduh file proyek HTML5 Anda.

ZOZ
sumber
5

mereka agak sama, dan ke mana harus pergi adalah ATM sebagai tebakan yang baik, dan sebagai catatan, ada satu yang Anda lewatkan, http://html5boilerplate.com/ Ini semacam pengulangan beberapa tahun yang lalu ketika prototipe dan jQuery bertarung di ruang yang sama. Saya pribadi membahayakan jQuery yang menang tetapi untuk saat ini tidak ada yang tahu yang mana dari ini yang akan memenangkan pertarungan khusus ini. Saya rasa saya tidak dapat merekomendasikan dean edwards ie7-js karena sebagian besar berhubungan dengan hanya membuat IE7 bertindak seperti browser lain yang lebih cerdas dan disukai daripada memanfaatkan keseluruhan HTML5 sebanyak kerangka kerja lainnya.

FatherStorm
sumber
2
Terima kasih telah menyebutkan boilerplate. Saya akan memasukkan ini ke dalam pertanyaan saya, tetapi saya ingin ini spesifik untuk 3 item dalam pertanyaan saya, karena Modenizer disertakan dalam boilerplate.
PaulM
1
Anda salah tentang apa itu html5boilerplate, html5boilerplate adalah paket yang berisi apa yang Anda butuhkan untuk memulai proyek web, seperti initializr, di beberapa titik dalam versi lama html5boilerplate dan bahkan mungkin sekarang, ini akan menjelaskan bahwa Anda harus menggunakan modernizr atau html5shiv dan tidak menggunakan keduanya, karena modernizr melakukan apa yang Anda butuhkan, Anda juga harus mengunduh modernizr khusus untuk lingkungan produksi Anda dan hanya menggunakan apa yang Anda butuhkan, jika Anda tidak akan menggunakan kelas persediaan modernizr maka Anda harus tetap menggunakan html5shiv!
Neo
html5boilerplate telah berubah secara dramatis sejak pertanyaan ini diajukan pada tahun 2010 dan sekarang. ia melakukannya, apa yang diinginkan dalam pertanyaan yang diajukan kemudian, menggabungkan semua yang Anda butuhkan untuk memulai proyek HTML5. pertanyaan aslinya adalah 'Saya ingin membuat HTML5 pertama saya'. Saya masih yakin bahwa html5boilerplate adalah opsi alternatif yang dapat diterima untuk pertanyaan yang diajukan pada saat pertanyaan itu diajukan.
FatherStorm