javascript-Modernizr,html5shiv,ie7.js和CSS3 Pie。 何时使用哪个?

我刚刚开始在文档中使用HTML5和CSS3。我知道需要JavaScript来使Internet Explorer更快地使用这些新的标记和样式,但是我不知道该在何时使用哪个!

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

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

CSS3 Pie是做什么的,而Modernizr还是其他人没有? 或相反亦然?

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

3个解决方案
70 votes

我在所有这些方面都拥有丰富的经验,每一个都使用了几年。

现代化

包括HTML5shiv功能还可以做更多的事情–如果您不使用其他功能,那么请不要使用它,它会减慢页面加载速度,但是如果需要的话,这样做值得!

HTML5shiv

很小,只能修复IE中的html5元素,仅此而已。

CSS3PIE

使您可以在较旧版本的IE中使用边界半径,渐变和框阴影。 还可以允许IE 6中的PNG。为页面加载添加明显的延迟。

ie7.js(和ie9.js)

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

结论

我的建议分为两类:

如果您只是使用新的元素(在Internet上是2年新?!)和CSS3选择器,请使用ie9.js + html5shiv。 这是轻量级的,它使您无需担心IE6不支持任何功能就可以继续进行。

如果您使用了大量CSS3内容,那么CSS3PIE会整理出border-radius和box-shadow。 梯度支持似乎有些不稳定,因此我一直使用后备图像代替。 Modernizr使您可以轻松地将不同的属性传递给具有不同支持的浏览器。 我主要用它来确定浏览器是否具有CSS过渡和转换,因为它们对任何图像滑块或内容轮播都很有用。 使用自定义工具仅包含所需的功能是值得的-Webforms的东西会在其中显示一个包含50个文本框的文本框持续几毫秒,因此如果您不希望禁用它,则值得禁用。

希望对您有所帮助!

Rich Bradshaw answered 2020-02-14T10:52:38Z
6 votes

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

Brian Campbell answered 2020-02-14T10:52:59Z
2 votes

我主要使用CSS3Pie ...效果很好。 但是今天下午我在我的笔记本电脑上用I.E8进行了测试,这是一个问题...它禁用了一些CSS行...当我删除css3pie代码时,我的网站获得了两倍的速度...然后我来了 到处都是与人们争论css3速度下降的帖子...所以目前,我正忙于为IE7和IE8寻找另一种具有边界半径和阴影的方法。

如果您想使用它...请大量测试,因为它是非官方的修补程序

FrEaKi answered 2020-02-14T10:53:24Z
translate from https://stackoverflow.com:/questions/5667076/modernizr-html5shiv-ie7-js-and-css3-pie-which-to-use-and-when