在IE6系列等老式瀏覽器中使用HTML5的新標(biāo)簽實(shí)現(xiàn)方案

HTML5 向開發(fā)人員提供了很多新的標(biāo)簽, 如 section, nav, article, header 和 footer 等. 這些標(biāo)簽語義化程度高, 會(huì)被經(jīng)常使用, 但在 IE6, IE7, IE8 和 Firefox 2 等老式瀏覽器中不能識別和正常使用.
為什么老式的瀏覽器不能識別這些標(biāo)簽?
其實(shí)錯(cuò)不在瀏覽器, 因?yàn)樵谀莻€(gè)時(shí)代根本不存在這種標(biāo)簽, 所以不能正確識別出來, 而這種不尋常的標(biāo)簽識別令 DOM 結(jié)構(gòu)變得異常.
我們有測試代碼如下. 是一個(gè)文章標(biāo)題和藍(lán)色字的文章內(nèi)容, 其中文章內(nèi)容用了 article 標(biāo)簽.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>測試</title>
<style>
article{color:#06F;}
</style>
</head>
<body>
<h1>文章標(biāo)題</h1>
<article>
這是文章內(nèi)容,應(yīng)該是一段藍(lán)色的文字。在老式瀏覽器中,如果不做 hack 將顯示異常。
</article>
</body>
</html>
在 IE8 中, 顯示如下.
IE8 不能識別 article 標(biāo)簽, 定義在標(biāo)簽上的 CSS 樣式?jīng)]有起作用. 在 IE8 中, <article>
被解釋成命名為 <article />
和 </article />
兩個(gè)空的標(biāo)簽元素, 與文章內(nèi)容并列為兄弟節(jié)點(diǎn), 如下圖.
既然因?yàn)椴荒茏R別標(biāo)簽而不能使用, 解決辦法就是讓標(biāo)簽被識別出來. 所幸, 簡單地通過 document.createElement(tagName)
即可以讓瀏覽器識別標(biāo)簽和 CSS 引擎知道該標(biāo)簽的存在. 假設(shè)我們上面的例子的 <head>
區(qū)域加上如下代碼.
<script>
document.createElement('article');
</script>
IE8 中的 DOM 解釋就會(huì)變成下圖所示.
自然, 文字也顯示成正常的藍(lán)色.
博客早就轉(zhuǎn)用 HTML5 的寫法, 但苦于很多用戶沒有用最新的瀏覽器, 一直還在用 HTML4 的標(biāo)簽集. HTML5 很多標(biāo)簽語義化強(qiáng)而且實(shí)用, 我也開始嘗試一些常用的標(biāo)簽了, 現(xiàn)在用上了 article 和 time 標(biāo)簽.
相關(guān)文章
- 下面小編就為大家?guī)硪黄狧TML5 新標(biāo)簽全部總匯(推薦)。小編覺得挺不錯(cuò)的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-13
關(guān)于HTML5 Placeholder新標(biāo)簽低版本瀏覽器下不兼容的問題分析及解決辦
placeholder屬性是HTML5 中為input添加的。在input上提供一個(gè)占位符,文字形式展示輸入字段預(yù)期值的提示信息(hint),該字段會(huì)在輸入為空時(shí)顯示2016-01-27- HTML5引入的新標(biāo)簽有一些有趣的屬性,例如poster、autofocus、onerror、formaction、oninput,這些屬性都可以用來執(zhí)行javascript,這會(huì)導(dǎo)致XSS和CSRF跨域請求偽造。對這方2015-09-27
- 做移動(dòng)端有一段時(shí)間,今天有同事問了我 article 和 section 標(biāo)簽的使用,模模糊糊的解釋了下,他似懂非懂,有點(diǎn)小尷尬。忽然間覺得自己有必要再翻翻書籍,重溫下 html5 的2014-03-07
html5基礎(chǔ)標(biāo)簽(html5視頻標(biāo)簽 html5新標(biāo)簽用法)
html5基礎(chǔ),包括html5視頻標(biāo)簽和html5新標(biāo)簽等標(biāo)簽用法,大家參考使用吧2013-12-30HTML5的標(biāo)簽的代碼的簡單介紹 HTML5標(biāo)簽的簡介
本文主要介紹了HTML5的標(biāo)簽.不同于以前的標(biāo)簽.更簡單.更方便2012-05-28- HTML 5 是一個(gè)新的網(wǎng)絡(luò)標(biāo)準(zhǔn),目標(biāo)在于取代現(xiàn)有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 標(biāo)準(zhǔn)2012-02-17
- 本文主要為大家介紹了HTML5新增元素如何兼容舊瀏覽器的解決辦法,需要的朋友可以參考下2014-05-09
- HTML5給我們帶來了很多非常簡單但卻非常強(qiáng)大的HTML屬性:placeholder, download, and autofocus,等等2014-04-23
- 讓IE(包括IE6)支持HTML5元素,需要在HTML頭部添加一個(gè)簡單的document.createElement聲明,具體祥看本文2014-03-12