【问题标题】:Main usaged of modernizr & HTML5shiv librarymodernizr 和 HTML5shiv 库的主要用途
【发布时间】:2013-07-06 18:36:13
【问题描述】:
我从未使用过 HTML5 或 CSS3。我只是在学习并计划稍后在 Web 项目中使用它们。如果我们只是在页面中包含modernizr js文件,这不能帮助我们检测哪个功能有效,而是我们需要为modernizr后备系统编写代码,然后我们决定如何处理不支持任何HTML5功能的情况浏览器。这是一个modernizr后备示例
Modernizr.load({
test: Modernizr.canvas,
nope: 'http://flashcanvas.net/bin/flashcanvas.js'
});
- 如果 Modernizr 可以处理任何浏览器,那我为什么要使用 HTML5shiv 库?
- 为什么页面上已经使用了 Modernizr 时还需要包含 HTML5shiv?
- HTML5shiv 库如何工作?是否仅通过包含它就解决了所有 IE 问题?
- HTML5shiv 是否提供任何后备系统?
- 如果浏览器是IE,如何有条件地加载HTML5shiv库?
请通过代码示例提供您的答案。
期待讨论。谢谢
【问题讨论】:
标签:
modernizr
fallback
html5shiv
【解决方案1】:
如果 Modernizr 可以处理任何浏览器,那我为什么要使用 HTML5shiv 库?
为什么页面上已经使用了 Modernizr 时还需要包含 HTML5shiv?
您不需要单独包含 html5shiv,因为 Modernizr 包含它。从 Modernizr 1.5 开始,此脚本与流行的 html5shim/html5shiv 库中使用的脚本相同
HTML5shiv 库如何工作?是否仅通过包含它就解决了所有 IE 问题?
html5shiv 只允许 IE 识别和设置 HTML5 元素。仅此而已。
HTML5shiv 是否提供任何后备系统?
不,只有 Modernizr 支持特征检测。请注意,Modernizr 本身不会给您后备。您可以使用 yep/nope 为您想要支持的功能提供 polyfill 或回退
如果浏览器是IE,如何有条件地加载HTML5shiv库?
使用条件 HTML cmets,这将在 9 以下的 IE 版本上加载 html5shim
<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->