首页 文章

当页面作为HTML 4.01提供时,是否需要<html xmlns = ...>中的“xmlns”?

提问于
浏览
4

我喜欢以HTML 4.01的形式提供页面,因为XHTML在某些浏览器中并不是真的被视为XHTML,但Facebook's OpenGraph meta tags要求:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="http://www.facebook.com/2008/fbml">

但由于页面的DOCTYPE不是XHTML,如果 xmlns 在那里是否重要,是否应将页面改为DOCTYPE XHTML?

(实际上,如果页面是HTML, xmlns 有点令人困惑,因为它不是真正的XML,但Facebook页面没有讨论如何在HTML 4.01页面中添加元标记)

3 回答

  • 3

    对于HTML 4.01严格:

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

    对于HTML 4.01 Trasitional:

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

    您在facebook示例中看到的xmlns内容是XML命名空间,其目的是允许开发人员将自定义信息包含到HTML文档中 .

    可以把它想象成文件系统中的文件夹 .

    所以,当facebook宣布:

    xmlns:fb="http://www.facebook.com/2008/fbml"
    

    他们定义了一个“文件夹”,其中存储了自定义标签/属性/属性,因此:

    <meta property="fb:admins" content="USER_ID"/>
    

    ...其中重要的部分是“fb:admins”与在你的硬盘上有这个相同:

    /fb/admins.txt
    

    其中包含USER_ID值 .

    所以这只是一种保持数据组织和分离的方法 .

    希望这能为你解决问题 .

  • 0

    如果添加xmlns属性,它将无效HTML 4.01,但它很可能不会影响渲染 .

    如果我是你,我不会使用HTML 4.01 . HTML 5是新标准,您应该使用它 .

  • 2

    这些是XML命名空间定义,它们作为避免XML元素名称冲突的方式而存在 .

    由于这是facebook的协议,因此它们是定义命名空间的协议 .

    它与页面的服务方式“无关” .

相关问题