2012-03-10 12 views
36

Bu iki kod kitaplığı hakkında sitede çok fazla güzel soru olduğunu biliyorum.html5shiv üzerinden Modernizr faydalarını anlama

Onlardan hiçbirinde göremediğim bir şey sormak istedim.

Modernizr, html5shiv ürününün yalnızca komut dosyası dahil edilmediğini belirtiyor.

html5shiv "just", IE < 9 için HTML5 öğelerini düzelttiğini biliyorum, orada durmayı destekliyor mu?

Modernizr, IE navigatörlerinde CSS3 sorunlarını düzeltir mi? Ie9.js bunu yapar mı? (ve bu özel soruyu kutunun dışına koyarken, köşe kutularını işlemek için ek js kodu olmadan)

Sadece script dahil olmak üzere kütüphaneyi kullanarak hesaba katıldığınızda Modernizr'ın html5shiv üzerindeki avantajları nelerdir?

+2

Bir yanıt değil, ancak benim anlayışım, modernizr'in bir tarayıcının yeni (CSS3/HTML5) özelliklerini destekleyip desteklemediğini kontrol etmek için sıklıkla kullanıldığıdır. Ve sonra kod yapmayanlarla baş edebilir. Temelde şimler veya daha karmaşık versiyonları olan 'polyfills' diye adlandırdığı şeye sahiptir. Modernizr'ın html5shiv'e kıyasla ne düşündüğünden tam olarak emin değilim (genel olarak, şimşek açısından) ama genel olarak, Modernizr genellikle yama yerine kontrol etmek için kullanılır. Belki yanılıyor ama bu benim düşüncem. – Marshall

+0

http://blog.userinterfacemedia.com/modernizr-vs-html5shiv/ –

cevap

51

Farklı şeyler yaparlar.

Modernizr, bir sayfadaki özelliklerin kullanılabilirliğini algılar ve bu işlevlere gereksinim duymanız halinde eski tarayıcılar için kendi çok amaçlı dosyalarınızı sağlamanıza olanak tanır. <canvas> etiketini desteklemeyen tarayıcılarda, JavaScript arayüzü de dahil olmak üzere kanvas işlevlerinin, bir kanvas etiket polfill kullanarak <canvas> desteği ekleyebilirsiniz.

Html5shiv, eski tarayıcılara uygun olmayan yeni html5 etiketlerini (<section>, <header>, vb.) Ekler. Ayrıca, varsayılan stilleri de (örneğin, <section> için display: block) oluşturur.

İşte bu kadar. Başka işlevsellik sağlamaz.

+0

Görüyorum ve Modernizr, IE'nin CSS3 desteğini iyileştirmek için her şeyi yapıyor mu? – bevacqua

+5

Hayır. Desteklenip desteklenmediğini size bildirmekten başka bir şey yapmaz ve desteklenmiyorsa, bu işlevselliği tarayıcıya eklemek için bir polfill tedarik etmenizi sağlar. İçinde kullanılabilecek çok amaçlı dolgular listesi için https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills sayfasına bakın. – tkone

+0

Aslında onlar birbirlerine gerçekten ücretsizdir :) – tkone

37

Modernizr 1.5+ aslında HTML5Shiv'i içerir, dolayısıyla kullanırsanız, shiv gereksizdir. Kaynak: http://modernizr.com/docs/#html5inie

"Modernizr 1.5 sürümünde, bu betik, popüler html5shim/html5shiv kitaplığında kullanılanla aynıdır."

+2

ile bildirerek "oluşturmanıza" olanak sağlar. "Modernizr 1.5'in Aslı Olarak, bu betik, popüler html5shim/html5shiv kitaplığında kullanılanla aynıdır." – JGallardo