在从网上学习一些教程时,我看到很多人会将标签未闭合,例如 <link ..>
,<img ..>
。但是当我使用Netbeans编辑它们(HTML/JSP页面)时,这些标签会显示红色背景,直到我加入斜杠为止。 <br>
--> <br/>
。
哪种编写基于HTML的代码的方法才是正确的?
在从网上学习一些教程时,我看到很多人会将标签未闭合,例如 <link ..>
,<img ..>
。但是当我使用Netbeans编辑它们(HTML/JSP页面)时,这些标签会显示红色背景,直到我加入斜杠为止。 <br>
--> <br/>
。
哪种编写基于HTML的代码的方法才是正确的?
这两种方式对于HTML都可以使用,但不适用于XHTML,因为它是XML方言。
有些元素不需要闭合标签(/>
),特别是空元素(那些没有内容的元素)。例如 <hr>
和 <br>
。这些元素也可以是自闭合的(分别是 <hr />
和 <br />
)。这种自闭合等同于在开标签后立即添加一个闭标签。
对于XML,这样的非闭合标签是无效的 - 它必须被关闭,可以是自闭合或者有一个闭合标签。所以 <hr>
不是有效的XML,但 <hr />
和 <hr></hr>
是有效的。
HTML不是XML,但为了更好的兼容性,一些工具会尽可能地发出类似XML的HTML。
<div />
和 <div></div>
不同;浏览器可能会将其解读为只有 <div>
,从而破坏文档。 - DavidJCobb这取决于你使用的文档类型。如果你使用的是HTML 4,则不应使用自闭合标签;如果使用XHTML,则应该使用自闭合标签以生成有效的XML;如果使用HTML 5,则可以省略结束斜杠,但不是必需的。
W3C HTML验证器将在尝试在HTML 4中使用关闭标签时发出警告:
序列“/”可以根据文档的DOCTYPE以至少两种不同的方式解释。对于HTML 4.01 Strict,'/'终止了标签'>'。然而,由于许多浏览器即使在存在HTML 4.01 Strict DOCTYPE的情况下也不会这样解释它,因此最好完全避免在纯HTML文档中使用它,并将其仅保留用于那些以XHTML编写的文档。
>
在 HTML
中是正确的,但在 XHTML
中是不正确的。请检查您的 DOCTYPE。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
对于 HTML strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
对于 XHTML strict