HTML5shiv vs Dean Edwards IE7-js vs Modernizr - nên chọn cái nào?


113

Tôi đang tìm cách xây dựng trang web HTML5 đầu tiên của mình và đang tìm cách làm việc với IE.

Có html5shiv, Dean Edwards ie7-js và sau đó là Modernizr. Có phải tất cả đều giống nhau? Tôi bối rối không biết phải đi con đường nào.


1
+10 cho một câu hỏi tuyệt vời.
Snekse

Câu trả lời:


124

Không, chúng không giống nhau chút nào; họ làm những điều hoàn toàn khác.

  • html5shiv cho phép bạn sử dụng các thẻ HTML5 mới trong các phiên bản IE không hiểu chúng. Nếu không có nó, IE sẽ bị nghẹt các thẻ này, vì vậy bạn cần điều này nếu định sử dụng các thẻ này. Tuy nhiên, đừng mong đợi nó làm cho các thẻ thực sự làm được bất cứ điều gì trong IE! Nó chỉ dừng việc trình duyệt phàn nàn về chúng.

  • modernizr thiết lập một loạt các lớp trong HTML của bạn, tùy thuộc vào các tính năng có sẵn, bạn có thể sử dụng các lớp này để thay đổi bố cục của mình theo những gì trình duyệt hỗ trợ. Nó cũng cho phép bạn sử dụng các thẻ HTML5 mới trong IE , như html5shiv.

  • ie7.js (cũng như ie8.jsie9.js) sử dụng Javascript để điều chỉnh một số chức năng bị thiếu cho IE.

Theo như tôi biết thì không có sự kết hợp nào giữa chúng (ngoài html5shiv / modernizr), vì vậy bạn có thể sử dụng bất kỳ sự kết hợp nào của chúng, tùy thuộc vào những tính năng bạn cần triển khai.

Trong khi tôi đang nói về chủ đề này và vì bạn đang hỏi về các công cụ để làm cho IE tương thích hơn với các trình duyệt khác, tôi khuyên bạn cũng nên xem xét CSS3Pie , điều này sẽ giúp cuộc sống của bạn hạnh phúc hơn nhiều nếu bạn định sử dụng các góc tròn trên trang web của mình (cộng với một hoặc hai tính năng khác).

Điều này cũng không có gì trùng lặp với ba sản phẩm khác mà bạn đã đề cập, mặc dù chúng đều nhằm mục đích làm cho các phiên bản IE cũ dễ sử dụng hơn một chút.


Đó là câu trả lời tôi đang tìm kiếm. Cảm ơn :)
PaulM 4/10/10

64
Modernizr về cơ bản bao gồm toàn bộ html5shiv.
Paul Ailen

Tổng quan tuyệt vời. Chắc chắn cũng đã cho tôi một số định hướng. Cảm ơn!
ebrandell

2
@RoyiNamir - Modernizr đặt các lớp trong HTML. Bản thân nó không làm gì khác với các lớp đó, nhưng bạn có thể sử dụng các JS libs hoặc CSS khác để tham chiếu đến các lớp đó và làm bất cứ điều gì bạn muốn, giống như cách bạn làm với bất kỳ lớp nào khác trong mã HTML của mình. Ví dụ: Bạn muốn sử dụng một placeholdertrong thẻ đầu vào của mình. Nhưng IE cũ không hỗ trợ nó. Modernizr sẽ thêm một lớp no-placeholdertrong IE; bạn có thể viết mã Javascript tham chiếu đến lớp này để bạn có thể triển khai một tập lệnh bắt chước tính năng giữ chỗ mà không cần chạy nó trên các trình duyệt không cần nó. Hy vọng rằng sẽ giải thích nó
Spudley

1
IE9.jshtml5shiv cũng làm được mọi thứ.
Phil

12

Cách dễ nhất để bắt đầu một dự án HTML5 mới là sử dụng khởi tạo . Nó sẽ hướng dẫn và cho phép bạn xây dựng, tải xuống các tệp dự án HTML5 của mình.


5

chúng hơi giống nhau, và cách đi nào thì ATM cũng đoán được theo cách nào đó, và đối với hồ sơ, có một cái bạn đã bỏ lỡ, http://html5boilerplate.com/ Đây là một sự lặp lại của một số năm trước khi nguyên mẫu và jQuery đã chiến đấu trong cùng một không gian. Cá nhân tôi đã mạo hiểm rằng jQuery đã thắng nhưng hiện tại vẫn chưa biết ai trong số này sẽ thắng cuộc chiến cụ thể này. Tôi không nghĩ rằng tôi có thể giới thiệu trưởng khoa edwards ie7-js vì nó chủ yếu giải quyết việc chỉ làm cho IE7 hoạt động giống như các trình duyệt thông minh và đáng yêu khác thay vì tận dụng toàn bộ HTML5 như các khung công tác khác.


2
Cảm ơn đã đề cập đến boilerplate. Tôi sẽ bao gồm điều này trong câu hỏi của mình, nhưng tôi muốn nó cụ thể cho 3 mục trong câu hỏi của tôi, vì Modenizer được bao gồm trong boilerplate.
PaulM

1
Bạn đã hiểu sai về html5boilerplate là gì, html5boilerplate là một gói chứa những gì bạn cần để bắt đầu một dự án web, chẳng hạn như initializr, tại một số thời điểm trong các phiên bản cũ hơn của html5boilerplate và thậm chí có lẽ bây giờ, nó sẽ giải thích rằng bạn nên sử dụng modernizr hoặc html5shiv và không sử dụng cả hai, vì modernizr làm những gì bạn cần, bạn cũng nên tải xuống một modernizr tùy chỉnh cho môi trường sản xuất của mình và chỉ sử dụng những gì bạn cần, nếu bạn không sử dụng các nguồn cung cấp modernizr thì bạn nên sử dụng html5shiv!
Neo

html5boilerplate đã thay đổi khá nhiều kể từ khi câu hỏi này được đặt ra vào năm 2010 và bây giờ. nó đã làm được, những gì bạn muốn trong câu hỏi được hỏi sau đó, gói mọi thứ bạn cần để bắt đầu một dự án HTML5. câu hỏi ban đầu là 'Tôi đang tìm cách tạo HTML5 đầu tiên của mình'. Tôi vẫn tin rằng html5boilerplate là một lựa chọn thay thế có thể chấp nhận được cho câu hỏi được hỏi tại thời điểm nó được hỏi.
FatherStorm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.