【问题标题】:Understanding Modernizr benefits over html5shiv了解 Modernizr 对 html5shiv 的好处
【发布时间】:2012-03-10 02:06:24
【问题描述】:

我知道网站上有很多关于这两个脚本库的好问题。

我想问一些我似乎在他们中找不到的东西。

Modernizr 提供了什么html5shiv 不是开箱即用的,即只包含脚本。

我知道 html5shiv“只是”修复了 IE

Modernizr 是否修复了 IE 导航器上的 CSS3 问题? ie9.js 会这样做吗? (我的意思是开箱即用的这个特殊问题,没有额外的 js 代码来处理极端情况)

除了包含脚本之外,考虑到使用库时,Modernizr 与 html5shiv 相比有哪些优势?

【问题讨论】:

  • 不是答案,但我的理解是,modernizr 通常仅用于检查浏览器是否支持新的(CSS3 / HTML5)功能。然后代码可以处理那些没有的。它确实有所谓的“polyfills”,它们基本上是垫片或更复杂的版本。与 html5shiv 相比,我不完全确定 Modernizr 提供了什么(就垫片而言),但总的来说,Modernizr 通常用于检查而不是修补。也许我错了,但这是我的想法。

标签: javascript css html modernizr html5shiv


【解决方案1】:

他们做不同的事情。

Modernizr 检测页面中功能的可用性,允许您在需要该功能时为旧浏览器提供自己的 polyfill。您可以使用 canvas 标签 polyfill 添加对 <canvas> 的支持,以便在不支持 <canvas> 标签的浏览器中使用 canvas 功能,包括它的 JavaScript 接口。

Html5shiv 将不可用的新 html5 标签(<section><header> 等)添加到旧版浏览器。它还创建默认样式(例如,display: block 用于 <section>)。

就是这样。它不提供其他功能。

【讨论】:

  • 我明白了,Modernizr 有没有改进 IE 对 CSS3 的支持?
  • 没有。除了告诉您它是否受支持以及是否不支持它之外,它本身什么也不做,让您提供一个 polyfill 以将该功能添加到浏览器中。请参阅 github.com/Modernizr/Modernizr/wiki/… 以获取其中使用的 polyfill 的详尽列表。
  • 他们实际上是互补的 :)
  • 很好的答案,最后,你知道 ie9.js 参与了这一切吗?
  • 我对那个库没有任何经验,但它看起来试图让 HTML/CSS 在 ie8 和 7 中表现得像 ie9。如果它有效,这将是我们网站的一个很好的补充!感谢您向我展示这个!
【解决方案2】:

Modernizr 1.5+ 实际上包含 HTML5Shiv,所以如果你使用它,shiv 是多余的。来源:http://modernizr.com/docs/#html5inie

“从 Modernizr 1.5 开始,此脚本与流行的 html5shim/html5shiv 库中使用的脚本相同。”

【讨论】:

  • 来自链接,"从 Modernizr 1.5 开始,此脚本与流行的 html5shim/html5shiv 库中使用的脚本相同。"
猜你喜欢
  • 1970-01-01
  • 2013-07-06
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
相关资源
最近更新 更多