2012-01-02 34 views
10

Tôi đã tự hỏi liệu có cách nào để làm cho mã html5 hiển thị trong Internet Explorer 7 trở xuống hay không.Làm thế nào để sử dụng HTML5 trong IE 7?

Ví dụ

<div id="container"> 
    <header id="header"> 
     something 
    </header> 
</div> 

Trong Internet Explorer 7 tiêu đề không được hiển thị ở tất cả.

Tôi tìm thấy cách giải quyết here, một tập lệnh bật HTML5 của IE, tạo ra các phần tử html5 có javascript. Nhưng điều xảy ra là thẻ <header> trông không giống như trong các trình duyệt khác.

Vì vậy, câu hỏi của tôi là, còn quá sớm để sử dụng HTML5 chưa hoặc làm cách nào để làm cho trình duyệt chéo hoạt động?

+0

thực tế là nó không giống nhau trong IE như mo khác dern trình duyệt là đúng trong mọi trường hợp anyway. Phải điều chỉnh mọi thứ để làm cho nó trông giống nhau trong IE là một phần của cuộc sống bình thường, hàng ngày. – Rob

+0

Câu lệnh “tiêu đề không được hiển thị chút nào” là không chính xác. IE 7 bỏ qua các thẻ, chứ không phải nội dung. Vì vậy, nội dung ("cái gì đó") được hiển thị, như vậy. Kiểu * của nội dung là một vấn đề khác. –

Trả lời

12

này (thực sự) chút đáng kinh ngạc của javascript nên đáp ứng 100% nhu cầu khả năng tương thích HTML5 của bạn:

http://www.modernizr.com/

0

Hãy thử sử dụng chromeframe - http://code.google.com/chrome/chromeframe/

Bằng cách riêng của mình mặc dù bạn không thể sử dụng hầu hết các tính năng mới mát mẻ của HTML5 với IE7. Nó chỉ là không được thực hiện trong trình duyệt đồng bằng và đơn giản.

+1

Cảm ơn, nhưng người dùng cần phải cài đặt này khi truy cập vào trang web của tôi, phải không? Tôi không nghĩ rằng đó là một ý tưởng hay, không ai sẽ làm điều đó. – phpheini

2

Bắt đầu với điều này: http://html5boilerplate.com/. Nó sẽ giải quyết hầu hết các vấn đề của bạn. Nó hoạt động tuyệt vời.

5

IE < 9 không nhận ra các phần tử HTML5 và sẽ không tạo ra chúng. Vì vậy, tôi sử dụng bit này của JS để làm hệ:

var e = ("abbr,article,aside,audio,canvas,datalist,details, 
figure,footer,header,hgroup,mark,menu,meter,nav,output, 
progress,section,time,video,figcaption,summary").split(','); 

for (var i = 0; i < e.length; i++){ 
    document.createElement(e[i]); 
} 

tôi sử dụng bình luận có điều kiện này để kiểm tra xem tôi cần phải chạy script

<!--[if lt IE 9]> 
    <script src="js/html5_createElement_for_IE.js"></script> 
<![endif]--> 

Tất nhiên, bạn sẽ cần phải tạo kiểu cho thẻ cho IE < 9, nhưng bạn sẽ cần phải anyway.

+0

tại sao 'figcaption' và' summary' không có trong danh sách đó? – Alohci

+0

Đó là một sự giám sát, @Alohci. Cảm ơn đã chỉ ra điều đó. Đã chỉnh sửa câu trả lời của tôi (và tập lệnh của tôi!). –

+0

Có rất nhiều thư viện để làm điều này, bao gồm Modernizr và Google Shiv, nhưng về cơ bản đây là những gì đang diễn ra dưới mui xe. – superluminary

0

Tôi kiểm tra xem khách hàng yêu cầu có hỗ trợ loại mime ứng dụng/xhtml + xml không (đó là một phần của tiêu đề chấp nhận đã gửi yêu cầu).

Nếu không, sau đó tôi gửi cho khách hàng phiên bản của trang bằng cách sử dụng các nút div thay cho hầu hết các nút ngữ nghĩa html5.

6

Có 2 điều quan trọng cần xem xét trước khi sử dụng HTML5;

  1. Đối tượng tham dự (với sự lựa chọn trình duyệt của họ)
  2. HTML5 tính năng hữu ích trên trang web của bạn.

Nếu bạn chắc chắn rằng nhiều người dùng trên IE8 trở xuống, bạn nên tránh sử dụng HTML5 gần như hoàn toàn.

Vì vậy, khi bạn nói "còn quá sớm để sử dụng HTML5 chưa", câu trả lời là tùy thuộc vào cơ sở người dùng của bạn. IE có hỗ trợ tốt cho HTML5 chỉ từ phiên bản 9 trở lên ..

Không có cách nào để bạn có thể tạo các tính năng nâng cao HTML5 để làm việc trên IE7/8 ... html5.js mà bạn gọi chỉ làm cho CSS của bạn "không bỏ qua" bất kỳ yếu tố HTML5 nào và áp dụng kiểu dáng..It không làm gì thêm hơn ..

Đối với tất cả trình duyệt hỗ trợ lớn và điểm số, bạn có thể kiểm tra html5test.com

ngoài ra, bạn cũng có thể kiểm tra một rất độc đáo giải thích hướng dẫn về HTML5 gọi là DesignMobileWeb có sẵn trên http://itunes.apple.com/in/app/designmobileweb/id486198804?mt=8

Hãy nhớ rằng tôi f bạn sẽ có một trang web cơ bản, sử dụng HTML5 nên tránh. Bạn chỉ nên xem xét HTML5 nếu bạn định sử dụng Lưu trữ cục bộ, Truy cập ngoại tuyến và Biểu mẫu HTML5 cho thiết bị di động, v.v.

1

Các phiên bản IE < 9 sẽ không hiển thị các phần tử HTML5 , vv không nằm trong danh sách. Các trình duyệt khác hiển thị các phần tử không được nhận dạng, nhưng không có kiểu dáng.

Cách xung quanh điều này là "hiển thị" các phần tử mới cho IE bằng cách phân tích chúng thành DOM trực tiếp bằng JavaScript. Bạn chỉ phải thực hiện việc này một lần trên mỗi lần xem trang.

Hai cách tiêu chuẩn để làm điều này là:

Modernizr cũng làm một bó toàn bộ những thứ khác để làm với tính năng phát hiện .

Các vấn đề liên quan