HTML5支援所有瀏覽器的SHIV解決方案

花米徐發表於2017-11-30

HTML5 瀏覽器支援

所有現代瀏覽器都支援 HTML5

此外,所有瀏覽器,不論新舊,都會自動把未識別元素當做行內元素來處理。

正因如此,您可以幫助老式瀏覽器處理"未知的" HTML 元素。

註釋:您甚至可以教授石器時代的 IE6 如何處理未知的 HTML 元素。

把 HTML5 元素定義為塊級元素

HTML5 定義了八個新的語義 HTML 元素。所有都是塊級元素。

您可以把 CSS display 屬性設定為 block,以確保老式瀏覽器中正確的行為:

例項

header, section, footer, aside, nav, main, article, figure {

display: block;

}

向 HTML 新增新元素

您可以通過瀏覽器 trick HTML 新增任何新元素:

本例向 HTML 新增了一個名為 <myHero> 的新元素,併為其定義 display 樣式:

例項

<!DOCTYPE html>

<html>

 

<head>

<title>Creating an HTML Element</title>

<script>document.createElement("myHero")</script>

<style>

myHero {

display: block;

background-color: #ddd;

padding: 50px;

font-size: 30px;

}

</style>

</head>

 

<body>

 

<h1>My First Heading</h1>

 

<p>My first paragraph.</p>

 

<myHero>My First Hero</myHero>

 

</body>

</html>

已新增的 JavaScript 語句 document.createElement("myHero"),僅適用於 IE

Internet Explorer 的問題

上述方案可用於所有新的 HTML5 元素,但是:

注意:Internet Explorer 8 以及更早的版本,不允許對未知元素新增樣式。

幸運的是,Sjoerd Visscher 創造了 "HTML5 Enabling JavaScript", "the shiv"

<!--[if lt IE 9]>

<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>

<![endif]-->

以上程式碼是一段註釋,但是 IE9 的早期版本會讀取它(並理解它)。

完整的 Shiv 解決方案

例項

<!DOCTYPE html>

<html>

 

<head>

<title>Styling HTML5</title>

<!--[if lt IE 9]>

<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>

<![endif]-->

</head>

 

<body>

 

<h1>My First Article</h1>

 

<article>

London is the capital city of England.

It is the most populous city in the United Kingdom,

with a metropolitan area of over 13 million inhabitants.

</article>

 

</body>

</html>

親自試一試

引用 shiv 程式碼的連結必須位於 <head> 元素中,因為 Internet Explorer 需要在讀取之前認識所有新元素。

相關文章