问题
当使用的条件注释用于IE8及更低版本并且Safari 4.x和Firefox 3.x读取IE条件注释时, html5shiv如何在IE9上工作 ?如果不是, html5shiv怎么可能使用他们的Github 说明中建议的条件注释在这些浏览器上工作?
[if lt IE 9]
这里有一个问题,询问是否可以在没有条件注释的情况下在每个浏览器中使用它以及副作用是什么,但这不是我的问题。这个问题是 4 年前提出的。HTML5 现在是标准的,微软不再提供对旧版浏览器的支持,因此在每个浏览器中加载它现在都是疯狂的,我不会考虑这一点。我的问题与 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 日放弃了对旧版浏览器的支持,似乎 html5shiv 现在或即将成为过去。看看这些旧版 IE 浏览器在未来一年下降多少会很有趣。
但是,根据您正在开发的内容,您可能仍希望支持这些浏览器。当您在上述统计数据中包括 Safari 4.x 和 Firefox 3 时,html5shiv 支持的总浏览器份额为 2.3%。对于大多数人来说这不算什么,但如果你拥有一个电子商务网站,2.3% 可能是巨大的。
关于我的实际问题,我想我要么忽略了文档中的某些内容,要么不够了解 IE 条件注释。
从逻辑上讲,我认为这将是最好的方法。IE 中的条件注释适用于版本 5 到 9,因此我们不应该无缘无故地在 IE5 中加载脚本。
<!--[if !(IE 5)]>
<script src="bower_components/html5shiv/dist/html5shiv.js"></script>
<![endif]-->
然而,在过去的 5 年里,我从未真正见过有人这样做,所以我显然错过了一些东西。另外,我仍然看不到这对 FF 3 和 Safari 4 会如何工作,除非有错误或导致他们不阅读评论的东西。关于这个问题,我也在 html5shiv github 上打开了这个主题,但一直没有得到答案。
HTML5shiv 很容易在数以百万计的网站上使用,大多数开发人员和网站所有者假设它支持 IE9 Safari 4 和 FF 3 开箱即用。
此外,据我所知,关于 IE9,这就是 html5shiv 为支持它所做的一切。
article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
mark{background:#FF0;color:#000}
如果这是真的,这可能是许多人停止使用它的另一个原因,考虑到当你把它拿出来并将它包含在你的 css 中(或 css 重置)时,你的浏览器只有1.39%的html5shiv实际拥有的影响。