我经常在浏览某些页面时看到这个 doctype 声明
<!DOCTYPE html>
我进行了一些初步的调查,这是HTML 5的文档类型声明。现代浏览器可以解释它,并强制在标准模式下运行。
我的问题是,我的一些目标用户仍在使用IE6。如果我声明这样的文档类型,IE6会如何响应?
在这种情况下,我会获得任何好处或损失吗?
谢谢。
我经常在浏览某些页面时看到这个 doctype 声明
<!DOCTYPE html>
我进行了一些初步的调查,这是HTML 5的文档类型声明。现代浏览器可以解释它,并强制在标准模式下运行。
我的问题是,我的一些目标用户仍在使用IE6。如果我声明这样的文档类型,IE6会如何响应?
在这种情况下,我会获得任何好处或损失吗?
谢谢。
简短回答:HTML5 doctype在IE6中可以正常工作。
详细回答:请参考Henri Sivonen的综合研究,了解不同doctype对不同浏览器的影响。
在IE6中使用HTML5 doctype没有任何缺点。好处是更短的doctype,更容易记忆。
然而,IE浏览器存在一个奇怪的bug,如果您使用它尚未识别的HTML5标签,则无法使用CSS对其进行样式设置。浏览器会像标签不存在一样处理。不过,标签内容仍将正常呈现。
要解决这个问题,您可以通过调用createElement
函数并使用您想在页面上使用的HTML5标签名称来绕过此问题。这样做:
document.createElement('video');
在您的网页中,放置 <video />
标签之前,这将允许您对标签应用适当的样式。请注意,浏览器仍然不会实际处理标签。您只能对其应用 CSS 样式。<!--[if lt IE 9]>
<script src="dist/html5shiv.js"></script>
<![endif]-->