shiv脚本仅在IE中使用(在这种情况下小于版本9 [... lt IE9 ...]),不在其他浏览器中使用,被它们忽略.它毕竟是评论出来的
IE支持这些并读取它们.shiv脚本增强了功能,使这些旧浏览器"更好".
更新:看起来"lt IE9"也在Safari 4.x和FF 3.x中运行.从我能找到的(全部克隆自GitHub项目描述).
另一个更新:我有信心这只适用于IE,而不是旧的Safari或FireFox.我会继续挖掘.如果我错了,别人会纠正我.
shiv脚本仅在IE中使用(在这种情况下小于版本9 [... lt IE9 ...]),不在其他浏览器中使用,被它们忽略.它毕竟是评论出来的
IE支持这些并读取它们.shiv脚本增强了功能,使这些旧浏览器"更好".
更新:看起来"lt IE9"也在Safari 4.x和FF 3.x中运行.从我能找到的(全部克隆自GitHub项目描述).
另一个更新:我有信心这只适用于IE,而不是旧的Safari或FireFox.我会继续挖掘.如果我错了,别人会纠正我.
旁注:您仅应将类似的浏览器统计信息作为非常宽松的指南。这些站点的统计数据远非福音,并且会因国家/地区,市场与市场,人口与人口而变化。您应该查看自己网站的分析,并查看有多少用户属于Safari 4,FireFox 3,Internet Explorer 6-8类别(我想这将是很多不足2.3%)。
(还要记住,FireFox会自动更新自身,并且当前版本为43(!),而Safari随OSX自动更新,并且版本为9。人们仍然使用旧版本的可能性非常小。我检查了一个非常受欢迎的产品我的分析网站:在过去一个月的20,000个会话中,只有1个使用FF3,1个使用IE7,1个使用IE8,没有使用Safari 4或IE6。)
但是,如果您希望将这些异常值作为目标,则以下是对您的问题的答案:
当条件注释用于
[if lt IE 9]
IE8及以下版本时,html5shiv如何在IE9上工作
HTML5shiv不适用于IE9,因为它不需要。Internet Explorer 9已经正确支持几乎所有HTML5元素:
Safari 4.x和Firefox 3.x会读取IE条件注释吗?
Safari和FireFox不支持IE条件注释,但可以像这样定位它们:
FF3:
/* FireFox 3 */ html>/**/body .selector, x:-moz-any-link, x:default { color: lime; }
苹果浏览器:
/* Safari only override */ ::i-block-chrome,.myClass { color: lime; }
但这不是HTML5shiv所做的,您是对的: HTML5shiv主页上显示的条件语句不会被FF3或Safari 4吸收为当前状态。我猜这是因为他们认为这些浏览器非常罕见,以至于普通用户不值得。另外,无论如何,任何CSS重置/规范化都可能会包含那些浏览器所需的CSS。
因此,要遍历如何在上述所有浏览器中处理HTML5元素:
IE6-8:按照其Github文档中所述使用HTML5shiv.js 。
IE9-11:使用Normalize.css或添加main { display: block }
到HTML中。(感谢LGSon。)
Safari 4:使用Normalize.css或以下CSS:
article, aside, details, figcaption, figure, main, footer, header, hgroup, menu, nav, section { display: block; }
FireFox 3:与上述相同。
(FireFox 4+和Safari 5+具有更强大的HTML5支持,不需要上述CSS。)