如果我只需要旧的浏览器来识别我应该使用的HTML5标签,Modernizr还是热门的HTML5 shiv? 而且,如果我不需要设置此HTML5标签的样式,我是否需要浏览器才能识别它们?或者只在向这些标签添加CSS时才需要它?
谢谢!
答案 0 :(得分:16)
html5shiv基本上允许IE识别和设置HTML5元素的样式,而Modernizr提供了与broswer支持相同的加号功能检测。
所以要回答你的问题,HTML5 shiv应该足以识别IE中的HTML5标签。 (注意我在这里说IE,因为那是html5shiv的目标,不确定你说的旧浏览器是什么意思)
对于第二部分,即使您不想设置HTML5标签的样式,我建议使用shiv,因为浏览器可能显示不正确,或者根本不显示,所以最好是安全的。
答案 1 :(得分:11)
HTML5 Shiv较小,除非您需要一些Modernizr的检测功能,否则请去看看。
文件的大小非常重要,因为它始终位于html文档的头部,并阻止下载其他资源,直到完全执行。
由于旧版浏览器只需要它,我使用以下代码:
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
您可以删除不使用的html标记,但之后您将无法使用Google托管的文件。
答案 2 :(得分:1)
如果浏览器支持特定的CSS或HTML5功能,您也可以使用Modernizr加载特定文件。
假设浏览器不支持'canvas'作为HTML5元素,'fontface'作为CSS3属性
Modernizr.load({
test: Modernizr.fontface && Modernizr.canvas, // Test if the browser supports it or not
yep : '/path-to/html5-css3-attributes.css', // If browser supports it, load this file
nope: '/path-to/old-css-attributes.css' // If NOT, load this instead
});
您也可以在文件路径条件中使用.js。