排除DOCTYPE,字符集等有多糟糕?

时间:2012-05-21 21:43:45

标签: character-encoding doctype

简单的问题,只是有点好奇,因为我个人觉得必须在每个网页上都包含这些内容很烦人。

排除这些行:

<!DOCTYPE html>
<meta charset="utf-8">

真的损坏了您的网页吗?

2 个答案:

答案 0 :(得分:3)

这取决于。省略其中一个或两个可能没有任何效果,或者它可能完全破坏页面,或者它可能会改变它的外观(从几乎不可察觉到剧烈),或者它可能会在某些浏览器上改进它。

省略<!DOCTYPE html>通常会将浏览器设置为Quirks Mode,这对于浏览器(不同)尝试模拟旧版浏览器的大量功能实际上只是一个词。对于新页面,这通常很糟糕。对于在旧浏览器上编写的旧页面,Quirks Mode可能是必需的。

假设页面实际上是UTF-8编码,省略<meta charset="utf-8">可能会使浏览器在字符级别解释其内容完全错误,可能导致灾难。更常见的是,遗漏没有任何效果,因为浏览器将推断HTTP标头的编码(如果信息存在于其中,应该如此),或者来自领先的字节顺序标记(如果存在),或者通过启发式分析(即基于猜测的工作)关于数据的实际内容)。并且大量的UTF-8编码页面仅包含Ascii字符,这使得字符编码问题主要是学术性的。

如果页面实际上不是UTF-8编码的,那么当然不应该使用<meta charset="utf-8">。但是,省略它并不一定能挽救这一天。在这种情况下,您应该使用正确的编码名称替换utf-8,或者将实际数据的编码更改为UTF-8。

答案 1 :(得分:0)

在实践中,不会损坏您的网页。有没有这些说明符的数百万页面。另外,因为文档类型通常包含在服务器上的mime类型中,并且许多(如果不是所有)客户端将默认为正确的类型,如果不自动检测它,则实际上没有令人信服的理由包含那些额外的字节。

现在,如果你正在使用某种需要这些的网页设计师解决方案或内容管理软件,那么答案可能会有所不同。

编辑:我想我应该澄清一下,如果你使用更新的HTML功能(即HTML5),你至少应该拥有基本的html doctype。但是您的问题是它会损坏您的网页,对于许多网页(特别是不使用高级功能的简单网页),如果您排除了doctype,它将不会损坏您的网页。正如另一个提到的,因为UTF-8是默认编码,它也无关紧要。