【发布时间】:2016-04-16 12:05:18
【问题描述】:
问题
html5shiv 如何在 IE9 上使用
[if lt IE 9]的条件注释适用于 IE8 及以下并执行 >Safari 4.x 和 Firefox 3.x 阅读 IE 有条件的cmets?如果不是,html5shiv 怎么可能使用他们Github Instructions 中建议的条件 cmets 在这些浏览器上工作?
有一个question here 询问是否可以在没有条件 cmets 的每个浏览器中使用它以及副作用是什么,但这不是我的问题。这个问题是 4 年前提出的。 HTML5 现在是标准的,Microsoft 不再为旧版浏览器提供支持,因此在每个浏览器中加载它现在都是疯狂的,我不会考虑这一点。我的问题与 Github 上的文档有关,html5shiv 使用该文档开箱即用地提供了什么,以及如何使用它来支持它声称支持的浏览器。
引用 Github 上关于 html5shiv 脚本的自述文件:
“它还为 IE6-9、Safari 4.x 和 FF 3.x 的 HTML5 元素应用基本样式。”
使用时间:
<!--[if lt IE 9]>
<script src="bower_components/html5shiv/dist/html5shiv.js"></script>
<![endif]-->
根据Stat Counter,在过去一年中,IE 8 和 9 的全球使用率从大约 4% 下降到大约 2%。自 1 月 12 日 Microsoft dropped support 用于旧版浏览器以来,似乎 html5shiv 现在或即将成为过去。看看这些旧版 IE 浏览器在未来一年下降多少会很有趣。
但是,根据您正在开发的内容,您可能仍希望支持这些浏览器。当您在上述统计数据中包括 Safari 4.x 和 Firefox 3 时,html5shiv 支持的总浏览器份额为 2.3%。对于大多数人来说,这不算什么,但如果您拥有一个电子商务网站,那么 2.3% 可能是巨大的。
关于我的实际问题,我想我要么忽略了文档中的某些内容,要么对 IE 条件 cmets 理解得不够好。
从逻辑上讲,我认为这是最好的方法。 IE 中的条件 cmets 在版本 5 到 9 中都可以工作,因此我们不应该无缘无故地在 IE5 中加载脚本。
<!--[if !(IE 5)]>
<script src="bower_components/html5shiv/dist/html5shiv.js"></script>
<![endif]-->
但是,在过去的 5 年中,我从未真正见过有人这样做,所以我显然遗漏了一些东西。另外,我仍然看不到这对 FF 3 和 Safari 4 是如何工作的,除非存在错误或导致它们无法读取 cmets 的东西。我打开了这个topic on html5shiv github regarding this issue as well,但没有得到答案。
HTML5shiv 很容易在数以百万计的网站上使用,大多数开发人员和网站所有者都认为它支持 IE9 Safari 4 和 FF 3 开箱即用。
Also, as far as I'm aware in regards to IE9, this is all that html5shiv does to support it.
article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
mark{background:#FF0;color:#000}
如果这是真的,这可能是许多人停止使用它的另一个原因,考虑到当你把它拿出来并将它包含在你的 css 中(或 css 重置)时,你会下降到 1.39% html5shiv 实际上会产生影响的浏览器。
【问题讨论】:
-
恕我直言,我觉得将所有答案总结为您自己的答案是不好的做法,尤其是当您越来越少时,不要添加任何新内容,只需写出一点文字即可。跨度>
-
@LGSon 给它一个休息的人......在我的赏金中,我要求“需要权威参考”(我指出的 html5shiv 的开发人员回答)。 Chuck 有一个很好的答案,但它似乎只回答了一半的问题,而且大多数答案只是重复了我在问题中提出的问题。
-
不管@LGSon,你有一个可靠的答案,但更改了 13 次,然后将其删除,只添加了一个社区 wiki,并举了一个与你的第一个不相近的例子。一天结束...问题已经解决了,请不要再纠结了,因为这无关紧要。
标签: javascript html twitter-bootstrap internet-explorer html5shiv