跳转到主要内容
xieyanxy9 提交于 30 November 2012

原文链接:drupal.org/node/340119

 

Doctype 任何 HTML 页的第一行,告诉浏览器如何解释 HTML。

HTML 或 XML

你基本的 HTML 4 doctype 看起来如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

&lt;!DOCTYPE html&gt;">HTML 5: <!DOCTYPE html>1

您的 web 页的开头:

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

您可以使用旧的 HTML 或格式不正确的 HTML,但浏览器仍会蒙混过关一整套奇怪的解码试图显示你的页面右边的 HTML 的规则。XHTML 是从 HTML,一个伟大的飞跃,因为它是更严格,因此可帮助开发人员可以选择正确的 doctype。基本的 XHTML doctype 是: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

因为 XHTML 以适合 XML 标准,从开始您的 web 页:

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>

以 XML 格式轻松生活的浏览器时他们解释网页。浏览器使用只有一点点的标准代码来读取 XML 格式的信息。DTD 告诉浏览器,什么是合法的什么不是。您可以阅读完的页面上使用标准的 PHP XML 和提取信息,这也正是 XMLRPC 如何获取 HTTP 响应中的信息。

以 XML 格式使您的页面发生重大变化。 &lt;option selected&gt;Sydney&lt;/option&gt; becomes &lt;option selected="selected"&gt;Sydney&lt;/option&gt;. The XML schema for XHTML does not allow selected as some strange data hanging around. You have to use the format name="value" which means you have to type selected="selected". The advantage is clarity, the browser knows exactly what you mean without complicated decoding rules.">&lt;option selected&gt;Sydney&lt;/option&gt; becomes &lt;option selected="selected"&gt;Sydney&lt;/option&gt;. " lang="zh-CHS"><option selected>Sydney</option>变为<option selected="selected">Sydney</option>。selected as some strange data hanging around. " lang="zh-CHS">XHTML 的 XML 架构不允许作为挂一些奇怪的数据产生的selected。selected="selected". " lang="zh-CHS">您必须使用的格式名称 ="值"这意味着您必须键入selected="selected"。优点是清晰,浏览器知道到底你的意思不需要复杂的解码规则。

&lt;img src="example.png"&gt; becomes &lt;img src="example.png" /&gt;. &lt;br&gt; becomes &lt;br /&gt;. You have to have the ending / even in single elements.">&lt;img src="example.png"&gt; becomes &lt;img src="example.png" /&gt;. " lang="zh-CHS"><img src="example.png">变为<img src="example.png" />。&lt;br&gt; becomes &lt;br /&gt;. " lang="zh-CHS"><br>变为<br />。/ even in single elements." lang="zh-CHS">您必须有结束/,即使在单个元素。

严格或过渡

比较以下两个 HTML doctypes: <!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//EN" "http://www.w3.org/TR/html4/strict.dtd">

现在比较下面两个 XHTML doctypes: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

从过渡到严格的变化告诉浏览器要拒绝一些旧的想法,在 HTML 中。它是浏览器的打开警告在 PHP 中的等效。严格是相当于有一辆巡逻警车游弋在你身后时驾驶你的跑车。你遵守更多的规则。

严格将拒绝包括中心、 字体、 iframe、 罢工和美国使用 CSS 格式设置当您在您的 doctype 中使用严格的格式元素。

作为一个例子 Drupal.org

Drupal.org 主页开头下面的 doctype 和 XHTML。那里就是他们不遵守某处解释和它有与某些浏览器不工作的方式,他们应该做。也有这么多的模块和特殊位的结果需要一定的时间来清理的代码的使用所造成的东西。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>  <!-- Note: does not validate. We would like it to, but that would mean reduced user experience for the majority of our visitors. -->

id="edit-submit" in the following input element. The forms code, the search code, and other modules used to render forms with the same ID because they were rarely used on the same page. Now that there are more people working on Drupal development, the code is being modified to avoid these errors.">id="edit-submit" in the following input element. " lang="zh-CHS">验证错误之一就是id="edit-submit"在下面的输入元素。窗体代码、 搜索代码和其他用于呈现具有相同 ID 的窗体,因为他们很少在同一页上使用的模块。现在,有更多的人对 Drupal 开发工作,正在修改代码以避免这些错误。 <input type="submit" name="op" id="edit-submit" value="Search" class="form-submit" />

试着告诉浏览器要解码以下标题开始元素,都可以找到关于 Drupal.org 的规则。很容易更改为标准格式的 HTML 和 XHTML 中使用的 XML 格式是最简单的标准,但却要到处 ; 应用Drupal 基础代码、 你的主题,和一切生产的所有插件模块。

模块

您知道您需要验证您的输出,当您更改主题。当您添加一个新的模块时,您是否验证您的输出?该新模块可能会添加一个围绕现有信息的类或生成新的数据元素。模块可以创建块、 提供额外的表单输入的元素、 传递新数据通过一个模板,并添加 CSS。当您添加一个新的模块时,您必须确保该模块生成适合您为页面指定的 doctype 的输出。

测试

有的测试和验证工具列出其他地方。一些让您更改 doctypes 的测试。快速测试使用默认过渡 doctype Drupal.org 主页的制作 25 个错误并切换到严格制作 50 个错误。总的想法是消除默认错误,而不是以更高的级别,而不是严格的实验过渡,或 XHTML 1.1 而 XHTML 1.0。在更改您的 doctype 从过渡到严格之前修复的严格的错误。

语言支持

&lt;html&gt; changes to &lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;, where en is the language used on the web page. Drupal 6 has multiple language support built into the base code. You go to <EM>Administer &gt; Site Building &gt; Modules</EM>, then switch on the modules Locale and Content translation. Your output has to be XHTML to specify the language. While some browsers will guess what you want, the doctype has to be XHTML to make every browser read the extra information in the &lt;html&gt; element.">&lt;html&gt; changes to &lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;, where en is the language used on the web page. " lang="zh-CHS">在 XHTML, <html>更改为<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">,其中en是在 web 页上使用的语言。Drupal 6 已基本代码中内置的多语言支持。你去管理 > 网站建设 > 模块,然后切换模块区域设置和内容翻译。您的输出,必须要指定的语言的 XHTML。&lt;html&gt; element." lang="zh-CHS">虽然有些浏览器会猜到你想要什么,doctype 已是 XHTML,使每个浏览器阅读中的<html>元素的额外信息。

案例

HTML 是非常宽松,使用小写和大写,与许多浏览器尝试读取两个的时候。XML 要求所有元素名称、 属性名称和保留的作品都必须是单一的案例,并在 XHTML 这是小写。

主要建议是使用 XHTML 严格,当您启动一个新的站点或页面。