HTML5shiv vs Dean Edwards IE7-js vs Modernizr-选择哪个?


113

我正在寻找建立我的第一个HTML5网站,并一直在寻找与IE合作的机会。

有html5shiv,Dean Edwards ie7-js,然后是Modernizr。这些基本上都一样吗?我对走哪条路感到困惑。


1
+10是一个很棒的问题。
Snekse 2013年

Answers:


124

不,它们根本不一样;他们做完全不同的事情。

  • html5shiv允许您在不了解它们的IE版本中使用新的HTML5标签。没有它,IE就会阻塞这些标签,因此,如果您打算使用这些标签,则需要此标签。不要指望它会使标记实际上在IE中执行任何操作!它只是停止浏览器抱怨它们。

  • modernizr根据可用功能在HTML中设置了一堆类,您可以根据可用的功能来更改布局,以根据浏览器支持的功能进行更改。它还允许您在IE中使用新的HTML5标签,例如html5shiv。

  • ie7.js(以及ie8.jsie9.js)使用Javascript对IE缺少的某些功能进行了改装。

据我所知,它们之间没有交叉(除了html5shiv / modernizr),因此您可以根据需要实现的功能使用它们的任意组合。

在讨论这个主题的同时,由于您在询问使IE与其他浏览器更兼容的工具,因此建议您同时考虑CSS3Pie,如果您打算在网站上使用圆角,这会使您的生活更加快乐(加上一个或两个其他功能)。

尽管它们都旨在使旧版本的IE易于使用,但它与您提到的其他三种产品也没有交叉之处。


那就是我一直在寻找的答案。谢谢:)
PaulM 2010年

64
Modernizr本质上包括整个html5shiv。
保罗·爱尔兰

很棒的概述。当然也给了我一些指导。谢谢!
ebrandell

2
@RoyiNamir-Modernizr在HTML中设置类。它本身对这些类不执行任何其他操作,但是您可以使用其他JS库或CSS来引用这些类,并按照与对HTML代码中的任何其他类相同的方式进行所需的操作。示例:您要placeholder在输入标记中使用a 。但是旧的IE不支持它。Modernizr将no-placeholder在IE中添加一个类;您可以编写引用此类的Javascript代码,以便可以实现一个脚本来模仿占位符功能,而无需在不需要它的浏览器上运行它。希望能解释这一点
Spudley

1
IE9.jshtml5shiv也会做所有的事情。
Phil

12

开始新的HTML5项目的最简单方法是使用initializr。它会指导您,让您构建,下载HTML5项目文件。


5

它们在某种程度上是相同的,无论哪种方式,ATM都可以作为猜测,而且据记录,您错过了一个, http://html5boilerplate.com/这有点像几年前的原型和jQuery在同一个空间里作战。我个人会认为jQuery会获胜,但目前还不能确定其中哪一个会赢得这场特殊的战斗。我认为我不建议推荐爱德华兹的ie7-js,因为它主要用于使IE7像其他更智能,更可爱的浏览器那样工作,而不是像其他框架那样充分利用整个HTML5。


2
感谢您提及样板。我打算将其包括在我的问题中,但我希望它特定于我的问题中的3个项目,因为Modenizer已包含在样板中。
PaulM 2010年

1
您对html5boilerplate是什么是不正确的,html5boilerplate是一个包含在早期版本的html5boilerplate中甚至在某些时候启动web项目(例如initializr)所需的程序包,它可能说明您应该使用modernizr或html5shiv,并且不要同时使用两者,因为modernizr可以满足您的需求,还应该为您的生产环境下载自定义的modernizr并仅使用所需的东西,如果您不打算使用modernizr提供的类,那么您应该坚持使用html5shiv!
2014年

自从2010年至今提出此问题以来,html5boilerplate发生了巨大变化。然后,问题出现了,然后将您开始HTML5项目所需的一切都捆绑了起来。最初的问题是“我正在构建我的第一个HTML5”。我仍然认为html5boilerplate是提出该问题时可以接受的替代选项。
FatherStorm 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.