跨浏览器兼容性和docType声明

时间:2011-09-23 03:03:45

标签: html css xhtml cross-browser

我设计了一个网页并在firefox, chrome & IE-8上对其进行了测试。网页在firefox & chrome上显示正常,但在IE上则不显示。 在使其兼容的过程中,我将DocType声明从HTML 4.01 Transitional更改为XHTML 1.1HTML 4.01 Strict。这无法修复交叉兼容性。此外,当我将DocType从firefox & chrome更改为HTML 4.01 Transitional时,我发现网页设计在XHTML 1.1上混乱。

现在我的问题是,如果DocType在设计网页时很重要,我应该使用哪一个来实现交叉兼容?还有其他解决方案不涉及DocType吗?

1 个答案:

答案 0 :(得分:3)

听起来您只是在更改DOCTYPE,而不是更改任何HTML或CSS。这是您需要做的事情,因为每个DOCTYPE将以不同的方式呈现。

我建议使用STRICT之一 - HTML4.01 STRICT,XHTML1.0 STRICT或XHTML1.1,具体取决于您的需求。或HTML5(虽然我还没有使用过它)。此外,请确保您的doctype声明正确,并且如果您使用的是XHTML,则将xmlns包含在html标记中。

供参考:

  • QuirksMode有很多很棒的信息,包括浏览器 兼容性信息。
  • A List Apart也非常有帮助 文章。
  • 我指的是HTMLCSS2规格 常。

检查你的doctypes:

HTML 4.01严格,过渡,框架集

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict,Transitional,Frameset

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

XHTML 1.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

HTML5

<!DOCTYPE html>