我正在使用 HTML5 构建响应式设计。起初我使用了 Modernizr 和 HTML5 Boilerplate 的 CSS 重置,但当然 IE<9 无法识别 html5 元素的类和 id。
因此,我最需要的是对 html5 元素的完全支持,最好是对具有“最大宽度”的图像进行良好的显示后备,而不使用 CSS hack。
我应该遵循哪些选项?
- 包含带有条件注释的 html5shiv 和 ie9.js
- 仅包含适用于所有浏览器的 ie9.js
- 忘记 ie9.js
非常感谢!
html5shiv 和 ie9.js 做完全不同的事情。html5shiv 解决了旧版本 Internet Explorer 中的一个错误,其中任意元素(例如由 HTML5 引入的那些,浏览器早于这些元素)无法通过 CSS 设置样式。ie9.js 尝试修复旧版本 IE 中的某些渲染错误并添加对新 CSS3 功能的支持。包括哪一个的问题归结为您的意思:
完全支持 html5 元素
您是否需要使用这些元素并支持旧版本的 IE?然后你需要html5shiv。你需要使用 CSS3 属性和选择器吗?然后你会想要ie9.js。仅仅为了添加对 ie9.js 的支持而包含 ie9.jsmax-width
并不是一个好主意。
还有一件事情:
仅包含适用于所有浏览器的 ie9.js
永远不应该是一种选择 - 这样做只会对您的页面在其他浏览器上的性能产生不利影响。
Modernizr 包含用于将新标签添加到 IE<9 的 shiv 代码。确保在其他 javascript 链接/代码之前将链接添加到 head 部分。
只需从 HTML5BoilerPlate 中提供的 index.html 和其他文件文件开始,然后添加您的代码。