我经常看到有人建议我包含HTML5 shiv JS script以使HTML5在Internet Explorer中正常工作,但我找不到对此最常见用例的明确解释。
有人可能会提供常见的场景,说明为什么需要这个JS脚本?
此外,它是否需要位于<head>
中,或者我可以将其余部分放在<body>
标记的底部,以便它不会阻止UI线程?
答案 0 :(得分:5)
版本9之前的Internet Explorer拒绝将任何CSS样式应用于它无法识别的HTML元素,这包括HTML5带来的新元素。通过JavaScript DOM创建元素,它突然并神奇地意识到元素应该确实被设计样式。
您可以编写一个简单易用的脚本,循环遍历要调用document.createElement(tagName)
的HTML5标记名称数组。在大多数情况下,这可能对您有用,但是,在IE中打印HTML5页面并通过innerHTML添加HTML5内容会导致您进一步出现问题,此时切换到shiv是一个想法。
如果您愿意,HTML5 shiv可以放在头部或身体标签之后。我建议使用条件注释,以便只有IE加载它。