我已经阅读了一些关于DOCTYPE声明以及三种变体(strict, transitional和frameset)的书籍。
但是我仍然无法完全理解它们之间的区别,而且也不确定在创建网站时应该使用哪种变体。特别是我不理解strict和transitional之间的区别。
请问您能为我提供建议吗?
框架集是为定义框架集的文档而设计的(非框架集文档将被加载到框架中)。框架通常是一个糟糕的设计选择,会导致更多问题。
过渡性HTML规范是严格模式加上一些不应该使用的东西(主要是因为它们已经被CSS替代了)。有一些例外,比如start
属性,它有一些很好的理由支持使用它(但并不经常有用)。
严格模式是HTML的核心,通常是最好的选择。
HTML 4.01是HTML的最新版本。
XHTML 1.0是用XML表示的HTML 4.01。它在Internet Explorer中无法工作,除非你假装它是HTML(text/html规范允许这样做)。
XHTML 1.1是XHTML 1.0严格模式加上target属性、Ruby(不是编程语言)和其他一些微小的调整。没有规范允许假装XHTML 1.1是HTML。
(五年前:HTML 5是一个草案规范,可能会发生变化,并且在今天大多数使用的浏览器中,许多有趣的部分没有JavaScript的支持。它缺乏成熟的验证工具。
HTML 4.01通常是最好的选择,但如果您的出版系统中有XML工具链,则值得考虑使用XHTML 1.0,如果您需要其中添加的某些东西并且认为生活在前沿的风险是值得的,则值得考虑使用HTML 5。
简而言之:使用HTML 4.01严格模式,除非你知道为什么需要使用其他东西。
自此答案最初撰写以来,HTML 5已成为具有良好浏览器和工具链支持的标准。它是与浏览器实际工作方式最接近的规范。如果需要XML支持,则可用XML序列化。
简而言之:使用HTML 5:<!DOCTYPE html>
。
<!DOCTYPE HTML>
其他的都已经老掉牙了。
HTML5 > XHTML > HTML 4
注意:DOCTYPE 只有在验证文档和触发现代浏览器中最符合标准的模式时才有用。除此之外,它毫无价值。因此,您最好使用最现代化的版本(HTML5)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
这是最接近HTML5的通用文档类型。您可以使用HTML5的功能,如<menu>标签,它仍然会验证。