HTML5支援所有瀏覽器的SHIV解決方案
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 需要在讀取之前認識所有新元素。
相關文章
- 瀏覽器支援ES6的最優解決方案瀏覽器
- HTML5 之瀏覽器支援介紹HTML瀏覽器
- chrome瀏覽器最小字號解決方案Chrome瀏覽器
- 檢測瀏覽器是否支援HTML5功能瀏覽器HTML
- 突破瀏覽器域名併發限制的解決方案瀏覽器
- 解決JS彈出新視窗被瀏覽器阻止的解決方案JS瀏覽器
- Edge瀏覽器被搜狗瀏覽器篡改的解決方法瀏覽器
- angular瀏覽器相容性問題解決方案Angular瀏覽器
- 瀏覽器同源策略及 Ajax 跨域解決方案瀏覽器跨域
- 實現瀏覽器跨域解決方案介紹瀏覽器跨域
- IE9和IE9以下瀏覽器中tbody不支援innerHTML解決方案IE9瀏覽器HTML
- QTP測試多個瀏覽器視窗的解決方案QT瀏覽器
- 如何判斷當前瀏覽器是否支援html5瀏覽器HTML
- uc瀏覽器字型放大解決方案瀏覽器
- 如何檢測您的瀏覽器是否支援HTML5視訊瀏覽器HTML
- onscroll事件的瀏覽器支援事件瀏覽器
- 主流瀏覽器相容性問題與解決方案瀏覽器
- 瀏覽器相容性問題解決方案 · 總結瀏覽器
- vue填坑之解決部分瀏覽器不支援pushState方法Vue瀏覽器
- win10ie瀏覽器不支援付款怎麼解決_win10ie瀏覽器不支援付款如何修復Win10瀏覽器
- SSL-Explorer基於web瀏覽器的VPN解決方案Web瀏覽器
- forEach()相容所有瀏覽器瀏覽器
- 8款瀏覽器對HTML5支援評測瀏覽器HTML
- 相容所有瀏覽器的placeholder效果瀏覽器
- 相容所有瀏覽器的getElementsByClassName()函式瀏覽器函式
- 瀏覽器突然不能訪問某些可用網站解決方案瀏覽器網站
- 最新Iframe全瀏覽器相容自適應高度解決方案瀏覽器
- getElementsByClassName()方法的瀏覽器支援版本瀏覽器
- 瀏覽器列印方案瀏覽器
- windows10瀏覽器老是無法正常開啟解決方案Windows瀏覽器
- 新型BI解決方案:SaaS BI,在瀏覽器上分析資料瀏覽器
- 谷歌瀏覽器表單只能夠提交一次解決方案谷歌瀏覽器
- IE低版本瀏覽器document.referrer丟失解決方案瀏覽器
- 相容所有瀏覽器的圓角出效果瀏覽器
- 相容所有瀏覽器的陣列indexOf()方法瀏覽器陣列Index
- 相容所有瀏覽器的DOMContentLoaded事件瀏覽器事件
- 谷歌瀏覽器下jquery無法獲取圖片的尺寸解決方案谷歌瀏覽器jQuery
- Ajax保留瀏覽器歷史的兩種解決方案(Hash&Pjax)瀏覽器