2012-03-10 33 views
36

Tôi biết có rất nhiều câu hỏi hay về trang web về hai thư viện tập lệnh này.Hiểu lợi ích của Modernizr trên html5shiv

Tôi muốn hỏi điều gì đó mà tôi dường như không thể tìm thấy trong bất kỳ trang nào.

Điều gì Modernizr cung cấp rằng html5shiv không nằm ngoài hộp, nghĩa là, chỉ cần bao gồm tập lệnh.

Tôi biết html5shiv "chỉ" sửa các phần tử HTML5 cho IE < 9, có hỗ trợ dừng ở đó không?

Modernizr có khắc phục vấn đề CSS3 trên trình điều hướng của IE không? Liệu ie9.js có làm điều đó không? (và tôi có nghĩa là câu hỏi cụ thể này ra khỏi hộp, không có mã js bổ sung để xử lý các trường hợp góc)

Ưu điểm của Modernizr trên html5shiv khi bạn tính đến thư viện ngoài việc chỉ bao gồm tập lệnh là gì?

+2

Không phải là câu trả lời, nhưng sự hiểu biết của tôi là modernizr thường chỉ được sử dụng để kiểm tra xem trình duyệt có hỗ trợ các tính năng mới (CSS3/HTML5) hay không. Và sau đó mã có thể đối phó với những người không. Nó có những gì nó gọi là 'polyfills', mà về cơ bản là shims hoặc các phiên bản phức tạp hơn của chúng. Tôi không hoàn toàn chắc chắn những gì Modernizr cung cấp so với html5shiv (trong điều khoản của shims) nhưng, tổng thể, Modernizr thường được sử dụng để kiểm tra chứ không phải là để vá. Có lẽ tôi sai, nhưng đó là suy nghĩ của tôi. – Marshall

+0

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

Trả lời

51

Họ làm những việc khác nhau.

Modernizr phát hiện tính khả dụng của các tính năng trong trang cho phép bạn cung cấp các polyfills của riêng mình cho các trình duyệt cũ hơn nếu bạn cần chức năng đó. Bạn có thể thêm hỗ trợ cho <canvas> bằng cách sử dụng thẻ polyfill canvas để chức năng canvas, bao gồm giao diện JavaScript, trong các trình duyệt không hỗ trợ thẻ <canvas>.

Html5shiv thêm thẻ html5 mới không khả dụng (<section>, <header>, v.v ...) vào các trình duyệt cũ hơn. Nó cũng tạo kiểu mặc định (display: block cho ví dụ <section>).

Vậy đó. Nó không cung cấp chức năng nào khác.

+0

Tôi hiểu và Modernizr có làm gì để cải thiện hỗ trợ CSS3 của IE không? – bevacqua

+5

Không. Nó không tự làm gì khác ngoài việc cho bạn biết nếu nó được hỗ trợ và nếu nó không được hỗ trợ, hãy cho phép bạn cung cấp một chức năng để thêm chức năng đó vào trình duyệt. Xem https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills để biết danh sách đầy đủ các polyfills để sử dụng trong đó. – tkone

+0

Họ thực sự miễn phí với nhau mặc dù :) – tkone

37

Modernizr 1.5+ thực sự bao gồm HTML5Shiv, vì vậy nếu bạn sử dụng nó, shiv là thừa. Nguồn: http://modernizr.com/docs/#html5inie

"Kể từ Modernizr 1.5, tập lệnh này giống với những gì được sử dụng trong thư viện html5shim/html5shiv phổ biến".

+2

Từ liên kết," Theo Modernizr 1.5, tập lệnh này giống với những gì được sử dụng trong thư viện html5shim/html5shiv phổ biến. " – JGallardo