<head> 和 <body> 标签是否应该与 <html> 处于不同的缩进级别?

Should <head> and <body> tags be on a different level of indentation to <html>?

我一直想知道,但如果有任何关于缩进 body 或 head 标签的固定标准,我真的无法在任何地方找到答案。

这个版本正确吗?

<html>
<head>
</head>
<body>
</body>
</html>

还是这个?

<html>
    <head>
    </head>
    <body>
    </body>
</html>

虽然我很欣赏它可能不会对最终网站的功能产生丝毫影响,但我们都是人类,并且都拥有好奇心这一天赋/负担。

有没有固定的标准或者没有关系?

HTML 不关心缩进,它只需要适当的嵌套。它被解析为相同的(当然除了空白文本节点),正确性并不重要。

虽然适当的缩进对可读性很重要,但许多人选择不缩进 <html><head><body> 标签,因为它们的结构微不足道,并且只会将整个文档向右移动不必要地。这些标签的内容应始终缩进以进行干净的标记,以便 reader.

清楚嵌套结构

明确回答您的问题:

Should <head> and <body> tags be on a different level of indentation to <html>?

没有必要,因为每个人都知道它们嵌套在 <html> 中。如果你愿意,你可以做到。两者

<html>
    <head>
        <title>…</title>
        …
    <head>
    <body>
        <div>
            <div>…</div>
            …
        </div>
        …
    </body>
<html>

<html>
<head>
    <title>…</title>
    …
<head>
<body>
    <div>
        <div>…</div>
        …
    </div>
    …
</body>
<html>

没问题,下面的就不行了:

<html>
<head>
<title>…</title>
…
<head>
<body>
<div>
<div>…</div> <!-- which nesting level ??? -->
…
</div>
…
</body>
<html>

在功能上无所谓,但为了干净可读可管理[=15] =] 代码你应该总是缩进孩子。

而不是这个:

<html>
    <head>
    </head>
    <body>
        <h1>That's 2 levels of indenting and we haven't even started yet.</h1>
    </body>
</html>

或者这个(没人知道为什么人们开始这样做):

<html>
<head>
</head>
<body>
</body>
</html>

我想提出另一种风格。三行通用结构:

<html><head>
</head><body>
</body></html>

插入一些HTML:

<html><head>
    <style>
    </style>
</head><body>
    <div>
    </div>
</body></html>

在这种情况下,我们以自然的方式摆脱了缩进级别(因为双缩进没有意义)。 headbody 元素导致其内容缩进。

我教一门网页设计入门课程,向学生解释为什么缩进很重要,尤其是对刚接触 HTML 的人来说,这是一个很大的挑战。我经常向他们展示 the W3schools website 中的 DOM 图作为 HTML 页面的树结构示例。老实说,虽然我完全清楚这没有丝毫影响,但缩进 <head></head><body></body> 有助于更好地显示 HTML 树结构。正如上面有人所说,缩进使代码清晰可读,但不仅仅是 <head><body> 都是 <html> 的子级,因此应该缩进以表明这一事实。