6

我需要一些有关网络编程的帮助。我必须从学校完成这项任务,教授已经提供了有关结构的详细信息。其中之一是我的网站应该符合 XHTML(严格或过渡)。另一个是我需要使用至少一个 HTML5 功能。如果没有任何新标签可以通过 XHTML 验证,我该如何使用 HTML5 功能?

我将它声明为 XHTML 1.0 过渡。

这是我遇到问题的 HTML 代码。

<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="#">Header1 </a></h1>

<nav><ul>
<li class="active"><a href="#">home</a></li>
<li><a href="#">portfolio</a></li>
<li><a href="#">blog</a></li>
<li><a href="#">contact</a></li>
</ul></nav>

</header>
</body>

在带有 header 和 nav 的行中,它表示元素未定义,并且 header 中没有属性 id 和 class。请帮忙。

谢谢。

4

2 回答 2

8

似乎最有意义的分配解释是,您需要使用HTML5 的XHTML 线性化,也称为 XHTML5。这仅仅意味着您像其他人一样使用 HTML5,但使用通用 XML 原则。

在示例情况下,这将意味着以下标记:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="#">Header1 </a></h1>

<nav><ul>
<li class="active"><a href="#">home</a></li>
<li><a href="#">portfolio</a></li>
<li><a href="#">blog</a></li>
<li><a href="#">contact</a></li>
</ul></nav>

</header>
</body>
</html>

XHTML 1.0 文档类型完全不同。它们定义了 HTML 的固定版本,因此您不能在静态标记中使用这些版本不允许的任何内容,即与 XHTML 1.0 和 HTML 4.01 相比,HTML5 中的任何新内容(这可能是“HTML5 功能”在那作业)。“兼容 XHTML(严格或过渡)”的要求是模糊的,但如果它是专门指 XHTML 1.0,那么分配是自相矛盾的(除非您应该使用客户端脚本来获得“HTML5 功能” ”)。

(由于@Alohci 的评论,这个答案在很大程度上被重写了。)

于 2012-10-08T21:30:55.353 回答
6

根据您的作业对“HTML5”的定义,仅使用标记是不可能的。一个文档不能使用新的 HTML5 元素同时保持与任何 XHTML 1.0 文档类型兼容。

但是,如果您被允许使用 HTML5 引入的 JavaScript API,例如localStorage,您可以编写脚本来访问这些 API,而无需使用任何新的 HTML5 元素(例如<header><nav>)。这些 API 不依赖于 HTML5 标记,因此可以与任何风格的标记一起使用,但无论如何通常称为“HTML5 功能”。

于 2012-10-08T21:01:16.000 回答