49

我刚刚开始在我的文档中使用 HTML5 和 CSS3。我理解 JavaScript 需要让 Internet Explorer 跟上这些新标签和样式的速度,但我不知道该使用哪个以及何时使用!

我的计划是使用 html5shiv 和 IE9.js 来处理 HTML5 标签以及透明 png(以及它们修复的任何其他讨厌的错误),但后来 Modernizr 和 CSS3 Pie 引起了我的注意。

我的问题是,如果我使用 Modernizr,它会满足我对 html5shiv 和 IE9.js 的需求吗?或者我也应该包括这些?重叠是什么,如果有的话?

CSS3 Pie 做了什么 Modernizr 或其他没有做的?或相反亦然?

我感谢你们的帮助。让我知道你在做什么!?

4

3 回答 3

70

我对所有这些都有丰富的经验,每个都使用了几年。

现代化

包括 HTML5shiv 功能 还有更多功能 - 如果您不使用其他功能,请不要使用它,它会减慢页面加载速度,但如果您需要它,它是值得的!

HTML5shiv

很小,只是修复了 IE 中的 html5 元素,没有别的。

CSS3PIE

允许您在旧版本的 IE 中使用边框半径、渐变和框阴影。也可以在 IE 6 中允许 PNG。显着延迟页面加载。

ie7.js(和 ie9.js)

为您提供许多 CSS3 选择器、最小和最大宽度、多个类和固定定位。如果您愿意,也可以进行 png 修复。似乎并没有放慢速度。

结论

我的建议分为两类:

如果您只是使用新的(互联网上是 2 年新的?!)元素和 CSS3 选择器,那么使用 ie9.js + html5shiv。这是轻量级的,只是让您继续做事,而不必记住 IE6 不支持任何东西。

如果你使用了很多 CSS3 的东西,那么 CSS3PIE 会整理出border-radius 和 box-shadow。渐变支持似乎有点不稳定,所以我一直使用后备图像。Modernizr 让您可以轻松地向具有不同支持的浏览器提供不同的属性。我主要使用它来确定浏览器是否具有 CSS 过渡和变换,因为它们对于任何图像滑块或内容轮播都很有用。值得使用自定义工具来仅包含您想要的功能——webforms 的内容会在几毫秒内显示一个包含 50 的文本框,因此如果您不想要它,则值得禁用它。

希望这会有所帮助!

于 2011-04-14T19:18:25.927 回答
6

我建议你只使用你需要的东西。在支持您正在使用的功能的浏览器中构建您的应用程序,并定期在您支持的其他浏览器中进行测试。如果某些东西不能正常工作,请找到适当的修复程序,无论是 html5shiv、IE9.js、Modernizr 还是 CSS3 Pie。您不会在一个页面中使用 HTML5 和 CSS3 中的所有新功能,因此您不需要包含所有现有的 polyfill 库。等到您发现您尝试使用的功能存在问题,然后尝试找到执行此操作所需的库。

于 2011-04-14T17:24:46.590 回答
2

我主要使用 CSS3Pie ...效果很好。但是今天下午我用 I.E8 在我的笔记本电脑上对其进行了测试,但它出现了问题......它禁用了一些 css 行......当我删除 css3pie 代码时,我的网站速度提高了一倍......然后我来了与人们争论 css3 减速的帖子越过...所以目前我正忙着为 IE7 和 IE8 寻找另一种方法来获得边框半径和阴影。

如果您想使用它...请进行大量测试,因为它是非官方修复

于 2011-07-21T14:32:29.280 回答