HTML5shiv vs Dean Edwards IE7-js vs Modernizr - co wybrać?


113

Chcę zbudować moją pierwszą witrynę HTML5 i zastanawiałem się nad pracą z IE.

Jest html5shiv, Dean Edwards ie7-js, a następnie Modernizr. Czy to w dużej mierze to samo? Nie wiem, którą trasę wybrać.


1
+10 za świetne pytanie.
Snekse

Odpowiedzi:


124

Nie, wcale nie są takie same; robią zupełnie inne rzeczy.

  • html5shiv pozwala na używanie nowych tagów HTML5 w wersjach IE, które ich nie rozumieją. Bez tego IE zakrztusi się tymi tagami, więc potrzebujesz tego, jeśli zamierzasz używać tagów. Nie spodziewaj się jednak, że sprawi, że tagi faktycznie zrobią cokolwiek w IE! Po prostu przestaje narzekać na nie przeglądarkę.

  • modernizr ustawia kilka klas w kodzie HTML, w zależności od dostępnych funkcji, których możesz użyć do zmiany układu zgodnie z tym, co obsługuje przeglądarka. Pozwala także na używanie nowych tagów HTML5 w IE , takich jak html5shiv.

  • ie7.js (jak również ie8.jsi ie9.js) używa JavaScript, aby dostosować niektóre brakujące funkcje do IE.

O ile mi wiadomo, nie ma między nimi krzyżowania (poza html5shiv / modernizr), więc możesz użyć dowolnej ich kombinacji, w zależności od funkcji, które chcesz zaimplementować.

Skoro już o tym mówię, a ponieważ pytasz o narzędzia , które zwiększą kompatybilność IE z innymi przeglądarkami, proponuję również zajrzeć do CSS3Pie , co uczyni twoje życie dużo szczęśliwszym, jeśli planujesz używać zaokrąglonych rogów na swojej stronie (plus jedna lub dwie inne funkcje).

Nie ma to również skrzyżowania z pozostałymi trzema wymienionymi produktami, chociaż wszystkie mają na celu nieco ułatwienie pracy ze starymi wersjami IE.


To jest odpowiedź, której szukałem. Dzięki :)
PaulM

64
Modernizr zasadniczo zawiera cały kod HTML5shiv.
Paul Irish

Fantastyczny przegląd. Z pewnością dał mi też wskazówki. Dzięki!
ebrandell

2
@RoyiNamir - Modernizr ustawia klasy w kodzie HTML. Samo nie robi nic więcej z tymi klasami, ale możesz użyć innych bibliotek JS lub CSS, aby odwołać się do tych klas i zrobić, co chcesz, w taki sam sposób, jak w przypadku każdej innej klasy w kodzie HTML. Przykład: Chcesz użyć placeholderw swoim znaczniku wejściowym. Ale stary IE tego nie obsługuje. Modernizr doda klasę no-placeholderw IE; można napisać kod JavaScript odwołujący się do tej klasy, aby można było zaimplementować skrypt naśladujący funkcję symbolu zastępczego bez uruchamiania go w przeglądarkach, które jej nie potrzebują. Mam nadzieję, że to wyjaśnia
Spudley

1
IE9.jsrobi wszystko, co robi html5shiv.
Phil

12

Najłatwiejszym sposobem rozpoczęcia nowego projektu HTML5 jest użycie initializr . Poprowadzi Cię i pozwoli Ci zbudować, pobrać pliki projektu HTML5.


5

są w pewnym sensie takie same, a droga do bankomatu jest tak dobra, że ​​tak czy inaczej, i dla przypomnienia, jest jeden, którego przegapiłeś, http://html5boilerplate.com/ To jest coś w rodzaju powtórzenia sprzed kilku lat, gdy prototyp i jQuery walczyły w tej samej przestrzeni. Osobiście zaryzykowałbym, że jQuery wygrał, ale na razie nie wiadomo, który z nich wygra tę konkretną walkę. Nie sądzę, żebym mógł polecić Dean edwards ie7-js, ponieważ zajmuje się on głównie sprawieniem, aby IE7 działał jak inne, bardziej inteligentne i lubiane przeglądarki, w przeciwieństwie do wykorzystywania całego HTML5 w takim samym stopniu, jak inne frameworki.


2
Dziękuję za wspomnienie o schemacie. Zamierzałem zawrzeć to w moim pytaniu, ale chciałem, aby było ono specyficzne dla 3 elementów mojego pytania, ponieważ Modenizer jest zawarty w moduleplate.
PaulM

1
Nie masz racji co do tego, czym jest html5boilerplate, html5boilerplate to pakiet zawierający to, czego potrzebujesz, aby rozpocząć projekt internetowy, taki jak initializr, w pewnym momencie w starszych wersjach html5boilerplate i być może nawet teraz wyjaśniłby, że powinieneś użyć modernizr lub html5shiv i nie używaj obu, ponieważ modernizr robi to, czego potrzebujesz, również powinieneś pobrać niestandardowy modernizr dla swojego środowiska produkcyjnego i używać tylko tego, czego potrzebujesz, jeśli nie zamierzasz korzystać z klas materiałów modernizacyjnych to powinieneś trzymać się html5shiv!
Neo

html5boilerplate zmienił się dość dramatycznie od czasu zadawania tego pytania w 2010 i teraz. zrobiło to wtedy, o co chodziło w zadanym wówczas pytaniu, zawierało wszystko, co było potrzebne do rozpoczęcia projektu HTML5. pierwotne pytanie brzmiało „Chcę zbudować swój pierwszy HTML5”. Nadal uważam, że html5boilerplate był dopuszczalną alternatywą dla pytania zadanego w momencie, gdy zostało zadane.
FatherStorm
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.