2010-06-03 29 views
15

Thẻ bố cục mới trong HTML5 bị suy giảm như thế nào? Những mối nguy hiểm khi sử dụng chúng là gì? (Tôi không nói về <video> - Tôi đã thấy mã dự phòng cụ thể cho nó).Sự cố xuống cấp đối với thẻ ngữ nghĩa HTML5 (bài viết, chân trang, tiêu đề)

Cụ thể, trong trường hợp của một cái gì đó giống như

<html> 
<head></head> 
<body> 
<header> 
<h1>Talking Dogs</h1> 
<b><p>Humans aren't the only talkers!</p></b> 
</header> 
<article> 
<p>Ever encountered a talking dog? I have.</p> 
<p>It all happened one day as I was walking down the street...</p> 
</article> 
<footer> 
© 2009 Woofer Dog Corporation 
</footer> 
</body> 
</html> 

Would sử dụng <header>, <article>, hoặc <footer> nguyên nhân bất kỳ vấn đề trình duyệt? Họ có tự động phân hủy thành <div> trong các trình duyệt không hỗ trợ không? Hoặc nếu tôi bao gồm chúng, tôi chỉ nên đưa chúng vào ý nghĩa ngữ nghĩa chứ không phải cho kiểu CSS hay kịch bản lệnh DOM?

+0

(Mã lấy từ http://www.quackit.com/html_5/tags/html_footer_tag.cfm) – emailq

Trả lời

33

Miễn là bạn sử dụng html5shiv để xử lý IE, nó sẽ hoạt động tốt.

Trình duyệt sẽ xử lý tất cả các thẻ không xác định (bao gồm thẻ HTML5) làm các phần tử nội tuyến thông thường.
Bạn nên bao gồm các quy tắc CSS sau:

article, aside, figure, footer, header, hgroup, 
menu, nav, section { display: block; } 
+1

Nhưng sau đó có vấn đề cho dù người dùng đã kích hoạt Javascript hay không ... – newyuppie

+1

@new: Người dùng IE không có khả năng tắt Javascript (ngoại trừ ESC). – SLaks

+25

Nếu một người sử dụng IE trên mục đích và có javascript bị vô hiệu hóa theo mục đích, trải nghiệm internet subpar của họ là lỗi của riêng họ. Nó giống như tắt màn hình của bạn và hy vọng vẫn có thể nhìn thấy con trỏ chuột của bạn. –

1

Đối với bài thuyết trình bạn sẽ sử dụng CSS dù sao đi nữa, vì vậy không thực sự quan trọng nếu trình duyệt hiểu được chính bản thân thẻ.

+0

vì vậy, nếu tôi kiểu chân trang {display: block; background-color: pink;} nó sẽ hoạt động trên các trình duyệt, ngay cả những trình duyệt không thực sự biết chân trang là gì? – emailq

+1

"không biết thẻ" về cơ bản có nghĩa là "không biết cách hiển thị thẻ theo mặc định", nếu bạn ghi đè bằng CSS tùy chỉnh, trình duyệt sẽ biết cách hiển thị. Lưu ý rằng CSS hoạt động ngay cả với XML, nơi bạn có thể có các thẻ tùy chỉnh hoàn toàn. – vartec

+0

Có, nó sẽ hoạt động, miễn là bạn thêm http://html5shiv.googlecode.com/svn/trunk/html5.js – SLaks

0

HTML 5 Thẻ không được hỗ trợ trong IE các thẻ vẫn không hoạt động. Để kích hoạt các thẻ HTML5 ngữ nghĩa trong IE, hãy sử dụng tập lệnh sau trong phần đầu của bạn.

<!--[if IE]> 
<script type="text/javascript"> 
(function(){ 
var html5elmeents = "address|article|aside|audio|canvas|command|datalist|details|dialog|figure|figcaption|footer|header|hgroup|keygen|mark|meter|menu|nav|progress|ruby|section|time|video".split('|'); 
for(var i = 0; i < html5elmeents.length; i++){ 
document.createElement(html5elmeents[i]); 
} 
} 
)(); 
</script> 
<![endif]--> 
+0

Thử nghiệm và nó hoạt động (IE9/Win7). Câu hỏi: Ưu điểm của tập lệnh này trên html5shiv là gì? –

+0

@ james.garriss IE9 + hỗ trợ các thẻ ngữ nghĩa mà không cần hack JavaScript này. Mã này dành cho IE8 trở xuống. Để trả lời câu hỏi của bạn, HTML5shiv và điều này làm chính xác điều tương tự - 'tạo' các phần tử bằng cách sử dụng đối số createElement. Với JS bị vô hiệu hóa, điều này sẽ không xảy ra, nhưng JS gần như dựa vào những ngày này. – DylRicho

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