3

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

不包括这些行:

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

真的会损坏您的网页吗?

4

2 回答 2

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。

于 2012-05-22T04:21:22.347 回答
0

在实践中,不,它不会损坏您的网页。有数百万页没有这些说明符。此外,由于文档类型通常包含在服务器上的 mime-type 中,并且如果不是所有客户端都默认为正确的类型,如果不是自动检测它,那么确实没有令人信服的理由来包含这些额外的字节。

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

编辑:我想我应该澄清一下,如果您使用较新的 HTML 功能(即 HTML5),您至少应该在其中拥有基本的 html 文档类型。但是您的问题是它会损坏您的网页,并且对于许多网页(尤其是不使用高级功能的简单网页),如果您排除文档类型,它根本不会损坏您的页面。正如另一个提到的,由于 UTF-8 是默认编码,它也不应该重要。

于 2012-05-21T21:57:33.850 回答