IE6和XML序言

时间:2020-03-05 18:47:42  来源:igfitidea点击:

带有类似XML的序言

? xml version="1.0" encoding="iso-8859-1"? >

和一个Doctype像

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

我可以使页面按预期呈现。但是,在IE7中,同一页面无法正确呈现。 (一个div中的跨度不能垂直对齐)。网络上的文章建议XML prolog + doctype将IE6置于怪癖模式。但是,本文似乎提出了其他建议,尽管并未提及适用于的版本(6或者7),但该文章的日期为2005年9月,这使我相信它适用于IE6.

XML Prolog + doc类型会将IE6置于怪癖模式下吗? IE7呢?关于赞成或者反对使用prolog + doctype的任何建议?

解决方案

回答

在doctype之前添加XML prolog将使IE6进入怪异的呈现模式。 (请参阅此处。)实际上,doctype之前的任何空格都会使IE6进入怪癖模式。 IE7及更高版本不是这种情况。我们可以使用document.compatMode(示例)让浏览器告诉我们它使用哪种模式进行渲染。

MSDN上的IE博客条目是指对IE7所做的更改,这些更改使IE7在使用适当的doctype时即使在XML prolog之前也可以保持在标准模式下。

我通常建议我们省略序言,并保持浏览器处于标准模式;我认为这将使生活更加轻松。