html5shiv
https://github.com/hgonlywj/html5shiv
<!-–[if lt IE 9]--><script src=" http://html5shiv.googlecode.com/svn/trunk/html5.js "></script ><!--[endif]–- >
IE 无法渲染 HTML5 样式
http://intertwingly.net/blog/2008/01/22/Best-Standards-Support#c1201006277
Chris Wilson: If you (the page developer) really want the best standards support IE8 can give, you can get it by inserting a simple <meta> element. Aaron gives more details on this in his article.
Aaron Gustafson: This option, though strongly discouraged, will cause a site to target the latest IE browser versions as they release.
My basic problem is that I don’t know what features are in and out of IE8 or when it will be released. I don’t even have access to a simple screenshot.
I simply want to code to standards, and hope that Microsoft will keep up as best of their ability. Accordingly, I’ve implemented the following in my .htaccess file:
BrowserMatch MSIE best-standards-support
Header set X-UA-Compatible IE=edge env=best-standards-support
See also: loose coupling. https://en.wikipedia.org/wiki/Loose_coupling
HTML5 Shiv使用
html5.js 必须在页面head元素内调用(因为 IE 必须在元素解析前知道这个元素,所以这个 JS 文件不能在页面底部调用。)
作者已经把js文件放在Google code project上并允许大家直接调用:http://html5shiv.googlecode.com/svn/trunk/html5.js
可以使用IE条件注释来调用这个 JS 文件,这样像 FireFox, Safari 等非 IE 浏览器就会忽视这段代码,也就不会有无谓的 HTTP 请求了。下面这段代码仅会在IE浏览器下运行:
<!–[if IE]>
<script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
<![endif]–>
IE 对 HTML5 标签无法识别,所以无法渲染样式,有一种方法可以强制 IE 渲染 HTML5 标签,当你创建一个新的 DOM 元素(名字和它无法识别的标签相同)的时候,IE 就可以渲染,并且甚至无需插入这个元素,下面 flagLable
<html> <head> <style>falgLable { color: blue; }</style> <script>document.createElement("falgLable")</script> </head> <body> <falgLable>Hello world!</falgLable> </body> </html>
就能被渲染。