如何在XHTML中使用HTML5功能

J H*_*J H 6 html xhtml html5

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

我将其声明为XHTML 1.0 Transitional.

这是我的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>
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Juk*_*ela 7

对于最有意义的赋值的解释是,您需要使用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>
Run Code Online (Sandbox Code Playgroud)

XHTML 1.0 doctypes是完全不同的东西.它们定义了HTML的固定版本,因此您不能在静态标记中使用这些版本不允许的任何内容,即与XHTML 1.0和HTML 4.01相比HTML5中的新内容(这就是"HTML5功能"可能意味着什么)分配).要求"符合XHTML(严格或过渡)"是不明确的,但如果它是专门引用XHTML 1.0,则赋值是自相矛盾的(除非您应该使用客户端脚本来获取"HTML5功能" ").

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


Bol*_*ock 6

根据您的作业"HTML5"的定义,单独使用标记是不可能的.文档不能使用新的HTML5元素,同时保持与任何XHTML 1.0文档类型兼容.

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