当页面作为HTML 4.01提供时,是否需要“xmlns”?

时间:2011-05-10 17:23:52

标签: html xhtml xml-namespaces

我喜欢将该页面作为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 个答案:

答案 0 :(得分:3)

对于HTML 4.01 Strict:

<!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值。

因此,这只是保持数据组织和分离的一种方式。

希望这能为你解决问题。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

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

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