【问题标题】:Doc Type Definition: A Syntax Question文档类型定义:一个语法问题
【发布时间】:2011-06-28 10:56:14
【问题描述】:

在我的网页顶部有几天:

<!doctype html><html xmlns="http://www.w3.org/1999/xhtml"
lang="nl" xml:lang="nl">

第一季度:
您认为哪一个更防故障/更好:&lt;!doctype html&gt;&lt;!doctype html/&gt;

第二季度:
我想知道是否有比这更短的东西,它将定义语言:
&lt;html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"&gt;

那应该以&gt;/&gt; 结尾吗?

非常感谢。

【问题讨论】:

    标签: html xhtml standards dtd web-standards


    【解决方案1】:

    Q1:这很简单:&lt;!doctype html/&gt; 是错误的。 doctype 不是自闭合标签,无论是在 HTML 中还是在 XML 中。因此,HTML5 的唯一有效声明是 &lt;!doctype html&gt;

    Q2:这取决于。如果您使用的是 HTML 而不是 XHTML 变体,则实际上不需要声明 XML 命名空间(xml:lang 属性也毫无意义)。在这种情况下,doctype(参见 Q1)就足够了:

    <!doctype html>
    <html lang="nl">
        …
    </html>
    

    另一方面,如果您想使用 XHTML,那么您应该添加 XML 名称空间(没错,还有xml:lang 属性)。使用 XHTML确实 有优势,主要是因为一些编辑器/评估者会更严格地处理错误,因此可以为错误提供更好的诊断。

    【讨论】:

    • 同样,如果您不使用 XML,那么拥有额外的命名空间 xml:lang 属性是没有意义的。
    • @David:这是不言而喻的。或者也许不是。 ;-) 我会添加它。
    • 我不会将文档语言称为额外的好处。确保屏幕阅读器获得正确的发音数据库并且搜索引擎以正确的语言归档文档是我书中的基本要素。只是 xml: 变体毫无意义。
    • +1 非常清楚!谢谢大家!更新问题,请参阅第二部分的“>”或“/>”。
    • &lt;html lang="de"&gt;,不,只有没有内容的元素才能有/,如果您正在编写 HTML(而不是 XML),那是无用的可选语法糖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2021-11-16
    • 1970-01-01
    • 2020-03-28
    • 2019-08-09
    • 2011-11-29
    • 1970-01-01
    相关资源
    最近更新 更多