我喜欢将该页面作为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)
答案 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的协议,因此它们是定义命名空间的协议。
它与页面的服务方式“无关”。