您好,登錄后才能下訂單哦!
HTML5新的語義標簽盡管有很多的好處,但是在低版本的老IE瀏覽器中還是存在兼容性問題的,常常讓人感到頭疼,到底是大膽的使用新標簽還是使用傳統的大量的DIV無義標簽?今天就簡單的看看H5新標簽的兼容性處理方式。
首先來看一小段簡單的代碼:
HTML代碼:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>測試H5新標簽兼容性</title> <style> header, footer{width:50px; height: 50px; background-color: #f00;} </style> </head> <body> <header id="header">header</header> <footer id="footer">footer</footer> </body> </html>
Google瀏覽器下:
IE6瀏覽器下:
很明顯,header和footer在支持H5新標簽的瀏覽器下已塊級元素呈現,而在IE8及以下的瀏覽器中以文本呈現并且樣式沒有起作用,說明不被支持,那如何解決呢?
首先,第一種方法便是使用DOM操作來添加這些標簽,既然瀏覽器不支持,那我自己來創建一個:
HTML代碼:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>測試H5新標簽兼容性</title> <script> document.createElement('header'); document.createElement('footer'); </script> <style> header, footer{display: block; width:50px; height: 50px; background-color: #f00;} </style> </head> <body> <header id="header">header</header> <footer id="footer">footer</footer> </body> </html>
這時候,我們再來看看IE6瀏覽器顯示的效果:
紅色的背景色可以顯示出來了,說明通過document.createElement()這一方法是可行的,那為什么樣式的寬高不起作用呢?因為添加的元素是內聯元素,內聯元素是沒有寬高的,在了解這一點以后,我們再給案例中的header和footer添加一個"display: block;"屬性,看看效果會有什么變化。
<style> header, footer{display: block; width:50px; height: 50px; background-color: #f00;} </style>
IE6瀏覽器顯示的效果:
現在顯示的效果跟我們需要的就完全一樣了,也就是說通過這種方法可以解決H5新標簽在老IE瀏覽器中的兼容問題。但是,另外一個問題,那么多的新標簽,如果每個都要通過這種方法去生產的話,是不是太麻煩了呢?
所以,我們現在介紹第二種方式,直接借用前輩大牛封裝好的js庫 --- html5shiv.js
HTML代碼:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>測試H5新標簽兼容性</title> <script src="js/html5shiv.js"></script> </head> <body> <header id="header">header</header> <footer id="footer">footer</footer> <script src="js/jquery-1.11.0.min.js"></script> <script> $('#header').css('color','#f00'); $('#footer').css({'width':'100px','height':'100px', 'border':'1px solid #ddd', 'backgroundColor':'#f00'}); $('#header').html('我是一只小小鳥'); </script> </body> </html>
那我們現在直接打開IE6瀏覽器看效果:
完全可以實現我們想要的效果,而且操作更加的簡單,代碼量更少,大家不妨也可以在IE7和IE8瀏覽器中也測試一下。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。