HTML5shiv vs Dean Edwards IE7-js - Modernizr - hangisini seçmeli?


113

İlk HTML5 sitemi oluşturmak istiyorum ve IE ile çalışmaya bakıyorum.

Html5shiv, Dean Edwards ie7-js ve ardından Modernizr var. Bunların hepsi büyük ölçüde aynı mı? Hangi rotaya gideceğim konusunda kafam karıştı.


1
Güzel bir soru için +10.
Snekse

Yanıtlar:


124

Hayır, hiç aynı değiller; tamamen farklı şeyler yapıyorlar.

  • html5shiv , yeni HTML5 etiketlerini, onları anlamayan IE sürümlerinde kullanmanıza olanak tanır. Bu olmadan, IE bu etiketleri boğacaktır, bu nedenle etiketleri kullanmak istiyorsanız buna ihtiyacınız olacaktır. Etiketlerin aslında IE'de herhangi bir şey yapmasını beklemeyin! Sadece tarayıcının onlar hakkında şikayet etmesini durdurur.

  • modernizr , düzeninizi tarayıcının desteklediğine göre değiştirmek için kullanabileceğiniz mevcut özelliklere bağlı olarak HTML'nizde bir grup sınıf ayarlar. Ayrıca , html5shiv gibi yeni HTML5 etiketlerini IE'de kullanmanıza olanak tanır .

  • ie7.js (hem ie8.jsve hem de ie9.js), bazı eksik işlevleri IE'ye uyarlamak için Javascript kullanır.

Bildiğim kadarıyla aralarında geçiş yok (html5shiv / modernizr dışında), bu nedenle hangi özelliklere ihtiyacınız olduğuna bağlı olarak bunların herhangi bir kombinasyonunu kullanabilirsiniz.

Ben konu üzerindeyken ve IE'yi diğer tarayıcılarla daha uyumlu hale getirecek araçları sorduğunuz için, sitenizde yuvarlak köşeler kullanmayı planlıyorsanız hayatınızı çok daha mutlu edecek CSS3Pie'ye de bakmanızı öneririm . (artı bir veya iki diğer özellik).

Bu aynı zamanda bahsettiğiniz diğer üç ürünle de kesişmiyor, ancak bunların tümü IE'nin eski sürümleriyle çalışmayı biraz daha kolaylaştırmayı amaçlıyor.


Aradığım cevap buydu. Teşekkürler :)
PaulM

64
Modernizr, esasen html5shiv'in tamamını içerir.
Paul Irish

Harika bir genel bakış. Kesinlikle bana da bir yön verdi. Teşekkürler!
ebrandell

2
@RoyiNamir - Modernizr, HTML'de sınıfları belirler. Kendi başına bu sınıflarla başka hiçbir şey yapmaz, ancak bu sınıflara başvurmak ve istediğinizi yapmak için, HTML kodunuzdaki diğer sınıflar için yaptığınız gibi, diğer JS kitaplıklarını veya CSS'yi kullanabilirsiniz. Bir örnek: placeholderGiriş etiketinizde a kullanmak istiyorsunuz . Ancak eski IE bunu desteklemiyor. Modernizr, no-placeholderIE'de bir sınıf ekleyecek ; Bu sınıfa başvuran Javascript kodu yazabilirsiniz, böylece ihtiyaç duymayan tarayıcılarda çalıştırmadan yer tutucu özelliğini taklit edecek bir komut dosyası uygulayabilirsiniz. Umarım bu açıklar
Spudley

1
IE9.jshtml5shiv'in yaptığı her şeyi yapar.
Phil

12

Yeni bir HTML5 projesi başlatmanın en kolay yolu, initializr kullanmaktır . Size rehberlik edecek ve HTML5 proje dosyalarınızı oluşturmanıza, indirmenize izin verecektir.


5

bunlar biraz aynı ve hangi yolun gidileceği ATM her iki durumda da iyi bir tahmin ve kayıt için kaçırdığınız bir tane var, http://html5boilerplate.com/ Bu, birkaç yıl önce prototip ve jQuery aynı alanda savaşıyordu. Kişisel olarak jQuery'nin kazandığını tehlikeye atardım ama şimdilik bunlardan hangisinin bu özel savaşı kazanacağını bilemiyorum. Dekan edwards ie7-js'yi tavsiye edebileceğimi sanmıyorum, çünkü bu çoğunlukla IE7'nin diğer çerçeveler kadar tüm HTML5 şeyini kullanmak yerine diğer daha akıllı ve sevimli tarayıcılar gibi davranmasını sağlamakla ilgiliydi.


2
Standart metinden bahsettiğiniz için teşekkürler. Bunu soruma dahil edecektim ama Modenizer klişe içerisinde yer aldığı için sorumdaki 3 maddeye özel olmasını istedim.
PaulM

1
Html5boilerplate'in ne olduğu konusunda yanılıyorsunuz, html5boilerplate, html5boilerplate'in eski sürümlerinde bir noktada initializr gibi bir web projesi başlatmak için ihtiyacınız olanı içeren bir pakettir ve belki şimdi bile modernizr veya html5shiv kullanmanız gerektiğini açıklayabilir ve her ikisini de kullanmayın, çünkü modernizr ihtiyacınız olanı yapar, ayrıca üretim ortamınız için özel bir modernizr indirmeli ve sadece ihtiyacınız olanı kullanmalısınız, modernizr sarf malzemeleri sınıflarını kullanmayacaksanız html5shiv'e bağlı kalmalısınız!
Neo

html5boilerplate, bu soru 2010'da ve şimdi sorulduğundan beri oldukça dramatik bir şekilde değişti. o zaman yaptı, sorulan soruda ne isteniyordu, bir HTML5 projesi başlatmak için ihtiyacınız olan her şeyi bir araya getirdi. orijinal soru 'İlk HTML5'imi oluşturmaya çalışıyorum' idi. Hala html5boilerplate'in sorulduğu sırada sorulan soru için kabul edilebilir bir alternatif seçenek olduğuna inanıyorum.
FatherStorm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.