HTML5新增元素如何兼容舊瀏覽器有哪些方法
發(fā)布時間:2014-05-09 10:56:05 作者:佚名
我要評論

本文主要為大家介紹了HTML5新增元素如何兼容舊瀏覽器的解決辦法,需要的朋友可以參考下
一個問題,老師拋給我們的,就是:如何讓IE8-兼容這些標(biāo)簽?(需要設(shè)計JS中的DOM)
雖然今天剛講的內(nèi)容,但是,還是需要去了解下。
<span style="font-size:14px;color:#FF6666;"> <!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5新增元素在舊瀏覽器的兼容-HTML5自由者</title>
</head>
<body>
<header>頂部區(qū)域</header>
<nav>導(dǎo)航區(qū)域</nav>
<article>文章區(qū)域</article>
<footer>底部區(qū)域</footer>
</body>
</html></span>
在支持HTML5標(biāo)簽的瀏覽器顯示為:
|------------------------------火狐瀏覽器--------------------------------------------|
|頂部區(qū)域 |
|導(dǎo)航區(qū)域 |
|文章區(qū)域 |
| |
|-----------------------------------------------------------------------------------------|
而在舊版的瀏覽器顯示樣式為:
------------------------------IE6瀏覽器--------------------------------------------
------------------------------IE8瀏覽器--------------------------------------------
都是同樣的效果,沒估計錯的話舊版瀏覽器都是不識別這些新增的標(biāo)簽所以都是用行內(nèi)元素來處理解決的,所以,有一個解決辦法的突破口就是讓它變成塊狀元素就不會處于同一行了,這樣在新舊瀏覽器都是可以顯示同樣的效果,再者就是讓瀏覽器識別標(biāo)簽,需要新增標(biāo)簽 具體解決辦法是:
IE8/IE7/IE6支持通過document.createElement方法產(chǎn)生的標(biāo)簽,可以利用這一特性讓這些瀏覽器支持HTML5新標(biāo)簽,代碼如下:
document.createElement(‘新標(biāo)簽’); / /新增創(chuàng)建新標(biāo)簽
JS代碼如下:
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('article');
document.createElement('footer');
</script>
或者是直接循環(huán)方式創(chuàng)建標(biāo)簽:
var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
var i= e.length;
while (i--){
document.createElement(e[i])
}
CSS樣式設(shè)置默認樣式:
<style>
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary{
display: block;
}
</style>
再者還有一種辦法就是用框架的方法,用到條件注釋加JS代碼實現(xiàn)
<span style="font-size:14px;color:#FF6666;"><!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]--></span>
直接加入這一句代碼就可實現(xiàn)兼容問題,關(guān)于條件注意中的
<!--if lt IE9>
是判斷是否小于IE9以下瀏覽器,如果是就執(zhí)行這段JS代碼 ,如果不是,就忽略掉。至于JS中的鏈接直接打開進去看看就知道了,也是一大段的代碼。
雖然今天剛講的內(nèi)容,但是,還是需要去了解下。
復(fù)制代碼
代碼如下:<span style="font-size:14px;color:#FF6666;"> <!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5新增元素在舊瀏覽器的兼容-HTML5自由者</title>
</head>
<body>
<header>頂部區(qū)域</header>
<nav>導(dǎo)航區(qū)域</nav>
<article>文章區(qū)域</article>
<footer>底部區(qū)域</footer>
</body>
</html></span>
在支持HTML5標(biāo)簽的瀏覽器顯示為:
|------------------------------火狐瀏覽器--------------------------------------------|
|頂部區(qū)域 |
|導(dǎo)航區(qū)域 |
|文章區(qū)域 |
| |
|-----------------------------------------------------------------------------------------|
而在舊版的瀏覽器顯示樣式為:
------------------------------IE6瀏覽器--------------------------------------------

------------------------------IE8瀏覽器--------------------------------------------

都是同樣的效果,沒估計錯的話舊版瀏覽器都是不識別這些新增的標(biāo)簽所以都是用行內(nèi)元素來處理解決的,所以,有一個解決辦法的突破口就是讓它變成塊狀元素就不會處于同一行了,這樣在新舊瀏覽器都是可以顯示同樣的效果,再者就是讓瀏覽器識別標(biāo)簽,需要新增標(biāo)簽 具體解決辦法是:
IE8/IE7/IE6支持通過document.createElement方法產(chǎn)生的標(biāo)簽,可以利用這一特性讓這些瀏覽器支持HTML5新標(biāo)簽,代碼如下:
document.createElement(‘新標(biāo)簽’); / /新增創(chuàng)建新標(biāo)簽
JS代碼如下:
復(fù)制代碼
代碼如下:<script>
document.createElement('header');
document.createElement('nav');
document.createElement('article');
document.createElement('footer');
</script>
或者是直接循環(huán)方式創(chuàng)建標(biāo)簽:
復(fù)制代碼
代碼如下:var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
var i= e.length;
while (i--){
document.createElement(e[i])
}
CSS樣式設(shè)置默認樣式:
復(fù)制代碼
代碼如下:<style>
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary{
display: block;
}
</style>
再者還有一種辦法就是用框架的方法,用到條件注釋加JS代碼實現(xiàn)
復(fù)制代碼
代碼如下:<span style="font-size:14px;color:#FF6666;"><!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]--></span>
直接加入這一句代碼就可實現(xiàn)兼容問題,關(guān)于條件注意中的
<!--if lt IE9>
是判斷是否小于IE9以下瀏覽器,如果是就執(zhí)行這段JS代碼 ,如果不是,就忽略掉。至于JS中的鏈接直接打開進去看看就知道了,也是一大段的代碼。
相關(guān)文章
- 下面小編就為大家?guī)硪黄狧TML5 新標(biāo)簽全部總匯(推薦)。小編覺得挺不錯的, 現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-13
關(guān)于HTML5 Placeholder新標(biāo)簽低版本瀏覽器下不兼容的問題分析及解決辦
placeholder屬性是HTML5 中為input添加的。在input上提供一個占位符,文字形式展示輸入字段預(yù)期值的提示信息(hint),該字段會在輸入為空時顯示2016-01-27- HTML5引入的新標(biāo)簽有一些有趣的屬性,例如poster、autofocus、onerror、formaction、oninput,這些屬性都可以用來執(zhí)行javascript,這會導(dǎo)致XSS和CSRF跨域請求偽造。對這方2015-09-27
- 做移動端有一段時間,今天有同事問了我 article 和 section 標(biāo)簽的使用,模模糊糊的解釋了下,他似懂非懂,有點小尷尬。忽然間覺得自己有必要再翻翻書籍,重溫下 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-30在IE6系列等老式瀏覽器中使用HTML5的新標(biāo)簽實現(xiàn)方案
HTML5 向開發(fā)人員提供了很多新的標(biāo)簽, 如 section, nav, article, header 和 footer 等. 這些標(biāo)簽語義化程度高, 會被經(jīng)常使用, 但在 IE6, IE7, IE8 和 Firefox 2 等老式瀏2012-12-25HTML5的標(biāo)簽的代碼的簡單介紹 HTML5標(biāo)簽的簡介
本文主要介紹了HTML5的標(biāo)簽.不同于以前的標(biāo)簽.更簡單.更方便2012-05-28- HTML 5 是一個新的網(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給我們帶來了很多非常簡單但卻非常強大的HTML屬性:placeholder, download, and autofocus,等等2014-04-23
- 讓IE(包括IE6)支持HTML5元素,需要在HTML頭部添加一個簡單的document.createElement聲明,具體祥看本文2014-03-12