HTML5新標簽的兼容性處理


HTML5新的語義標簽盡管有很多的好處,但是在低版本的老IE瀏覽器中還是存在兼容性問題的,常常讓人感到頭疼,到底是大膽的使用新標簽還是使用傳統的大量的DIV無義標簽?今天就簡單的看看H5新標簽的兼容性處理方式。

 

首先來看一小段簡單的代碼:

HTML代碼:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title>測試H5新標簽兼容性</title>
 6 
 7     <style>
 8         header, footer{width:50px; height: 50px; background-color: red;}
 9     </style>
10 </head>
11 <body>
12 <header id="header">header</header>
13 <footer id="footer">footer</footer>
14 
15 </body>
16 </html>

Google瀏覽器下:

IE6瀏覽器下:

很明顯,header和footer在支持H5新標簽的瀏覽器下已塊級元素呈現,而在IE8及以下的瀏覽器中以文本呈現並且樣式沒有起作用,說明不被支持,那如何解決呢?

 

首先,第一種方法便是使用DOM操作來添加這些標簽,既然瀏覽器不支持,那我自己來創建一個:

HTML代碼:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title>測試H5新標簽兼容性</title>
 6     <script>
 7         document.createElement('header');
 8         document.createElement('footer');
 9     </script>
10     <style>
11         header, footer{display: block; width:50px; height: 50px; background-color:red;}
12     </style>
13 </head>
14 <body>
15 <header id="header">header</header>
16 <footer id="footer">footer</footer>
17 
18 </body>
19 </html>

這時候,我們再來看看IE6瀏覽器顯示的效果:

紅色的背景色可以顯示出來了,說明通過document.createElement()這一方法是可行的,那為什么樣式的寬高不起作用呢?因為添加的元素是內聯元素,內聯元素是沒有寬高的,在了解這一點以后,我們再給案例中的header和footer添加一個"display: block;"屬性,看看效果會有什么變化。

1 <style>
2     header, footer{display: block; 
3                    width:50px; height: 50px; 
4                    background-color: red;}
5 </style>

IE6瀏覽器顯示的效果:

現在顯示的效果跟我們需要的就完全一樣了,也就是說通過這種方法可以解決H5新標簽在老IE瀏覽器中的兼容問題。但是,另外一個問題,那么多的新標簽,如果每個都要通過這種方法去生產的話,是不是太麻煩了呢?

 

所以,我們現在介紹第二種方式,直接借用前輩大牛封裝好的js庫 --- html5shiv.js

HTML代碼:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title>測試H5新標簽兼容性</title>
 6     <script src="js/html5shiv.js"></script>
 7 
 8 </head>
 9 <body>
10 <header id="header">header</header>
11 <footer id="footer">footer</footer>
12 <script src="js/jquery-1.11.0.min.js"></script>
13 
14 <script>
15     $(‘#header‘).css('color','#f00');
16     $(‘#footer‘).css({'width':'50px','height':'50px',
17                       'border':'1px solid #ddd',
18                       'backgroundColor':'red'});
19     $('#header').html('h5標簽兼容');
20 </script>
21 
22 </body>
23 </html>

那我們現在直接打開IE6瀏覽器看效果:

 完全可以實現我們想要的效果,而且操作更加的簡單,代碼量更少,大家不妨也可以在IE7和IE8瀏覽器中也測試一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM