是“xmlns”吗?在;当页面以 HTML 4.01 形式提供时需要吗?

发布于 2024-11-06 02:33:14 字数 529 浏览 1 评论 0原文

我喜欢以 HTML 4.01 的形式提供页面,因为无论如何,在某些浏览器中 XHTML 并不真正被视为 XHTML,但是 Facebook 的 OpenGraph 元标记 要求:

<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)

I like to serve the page as HTML 4.01, because XHTML is not really taken as XHTML in some browsers anyway, but Facebook's OpenGraph meta tags requires:

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

but since the DOCTYPE of the page is not XHTML, does it matter if the xmlns are there, and should the page be made into DOCTYPE XHTML instead?

(actually, if the page is HTML, the xmlns is kind of confusing, as it is not really XML, but the Facebook page doesn't talk about how to add the meta tags in a page that is HTML 4.01)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

守不住的情 2024-11-13 02:33:14

对于 HTML 4.01 严格:

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

对于 HTML 4.01 传统:

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

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

希望这能为您解决问题。

For HTML 4.01 Strict:

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

For HTML 4.01 Trasitional:

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

The xmlns stuff you see in the facebook example are XML namespaces and their purpose is to allow the developer to include custom tailored information to HTML documents.

Think of it like folders in a filesystem.

So when facebook declares:

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

They are defining a "folder" in which their custom tags/attributes/properties are stored, so:

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

...where the important part is "fb:admins" is the same as having this on your hard drive:

/fb/admins.txt 

which contains the USER_ID value.

So it's just a way to keep data organized and separated.

Hope this clears things up for you.

旧故 2024-11-13 02:33:14

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

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

It won't be valid HTML 4.01 if you add xmlns attributes, but it most likely won't affect the rendering.

I wouldn't use HTML 4.01 if I was you. HTML 5 is the new standard, and you should use it.

撩动你心 2024-11-13 02:33:14

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

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

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

Those are XML namespace definitions they exist as a way to avoid collisions in XML element names.

Since this is facebook's protocol, they are the ones that define the namespaces.

It has "nothing" to do with how the page is served.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文