HTML中不需要P结束标签(</p>)。

36

</p>只在XHTML中是必需的,在HTML中不必要。但有时候你仍然需要关闭它,例如当你将段落左对齐/右对齐/居中时。

像下面这样混合使用</p>会不好吗?请注意,第1段和第3段没有结束标签</p>

<h1>My article</h1>
<p>This is my 1st paragraph.
<p class="align=right">This is my 2nd paragraph</p>
<p>This is my 3rd paragraph.

我不想关闭P标签的原因:

  • 在我的CMS中容易处理(更要求代码以使其成为XHTML)
  • 文件更轻便,减少1KB。

3
关闭它会有任何伤害吗? - Daenyth
35
始终书写格式良好的HTML。你反对闭合<p>(或其他任何)标签有什么问题吗?这是非常糟糕的做法,会导致混乱、错误和灾难。 - Bojangles
2
可能是HTML中不关闭标签和属性的实际问题是什么的重复问题。 - robertc
3
同意。您应该始终关闭HTML标记。即使某些标准不要求,也不代表这是可以接受的。如果需要更有说服力的理由,那么关闭标记可以避免浏览器之间的不兼容性。 - Xcalibur37
1
大多数情况下,在代码中使用空格在语法上也不是必需的。但可读性则是另一回事。 - kapa
显示剩余5条评论
4个回答

49

XHTML中需要使用P-end-tag闭合段落,而HTML不需要。

正确

但是有时候你仍然需要关闭它,例如当你将段落左对齐/右对齐/居中等情况下。

不正确。唯一需要显式闭合段落标签的情况是想要结束段落,并紧跟着一些允许在段落内出现的内容 (如文本或内联元素)。这通常是一个不好的做法。

是否混合使用 P-end-tag 没有任何问题,唯一的问题是保持一致性有助于代码维护。


这使得只使用P-start-tag就可以保持一致性:D 那么IMG标签呢?将它们放在P标签内(带有“style = display:block”)是否可以?你说的“这通常是一个坏主意”是什么意思? - Hakan
3
将内联元素和块级元素作为同级元素很少有语义上的意义。 - Quentin

19

HTML5引用,清楚地说明了何时可以省略p标签

由于这是大多数谷歌员工必须来到这里的原因:4.4.1 "p元素" https://html.spec.whatwg.org/multipage/grouping-content.html#the-p-element

在text/html中的标签省略:

如果p元素紧接着是address、article、aside、blockquote、details、div、dl、fieldset、figcaption、figure、footer、form、h1、h2、h3、h4、h5、h6、header、hgroup、hr、main、menu、nav、ol、p、pre、section、table或ul元素,或者父元素中没有更多内容且父元素是一个不是a、audio、del、ins、map、noscript或video元素,或者是一个自定义的独立元素,则可以省略p元素的结束标签。

值得注意的是,还有一些其他的闭合标签也可以省略,例如lihttps://html.spec.whatwg.org/multipage/grouping-content.html#the-li-element 完整的列表可以在12.1.2.4 "可选标签"中找到https://html.spec.whatwg.org/multipage/syntax.html#optional-tags 然而,我不建议这样做,正如其他人所提到的。
这个HTML的"特性"是为什么HTML5不是XML的子集之一。 历史课 我正在维基百科上阅读HTML的历史,当我看到关于IBM通用标记语言的页面时,这是一个1970年的SGML前身,而SGML又是HTML的前身,当我看到这个珍贵的文档示例时:
   :h1.Chapter 1:  Introduction
   :p.GML supported hierarchical containers, such as
   :ol.
   :li.Ordered lists (like this one),
   :li.Unordered lists, and
   :li.Definition lists
   :eol.
   as well as simple structures.
   :p.Markup minimization (later generalized and formalized in SGML),
   allowed the end-tags to be omitted for the "h1" and "p" elements.

这个例子是从GML的一个创作者的主页上直接复制过来的。

有趣的是,在70年代,人们已经想要自动关闭。还要注意标签名与HTML中的标签名完全相同(h1polli)。我也想到了使用缩进关闭的HAML模板语法。

显然,XML是对情况进行清理的一种尝试。但不知何故,HTML在流行度上取得了胜利,并保持了这种疯狂的存在,尽管今天世界上大部分的HTML都是由工具生成的。我猜,不要惹恼人类。


1
HTML在XML之前出现。XML是为了改进数据交换的临时性质而努力制定的更严格的语法。 - undefined
@KevinThibedeau 哎呀,更新了。 - undefined

4

我想不出为什么你不能这样做,但强烈建议在任何地方都使用开始和结束标签以保持一致性。这也将使您在决定开始遵循XHTML标准时更加容易。


1
你只需要完成最后一个 <p> 标签。 示例:
<p align="left">Left
<p align="center">Center
<p align="right">Right</p> <!-If you don't put an ending tag, the text will continue in the same line
<p>End</p>

此外,它还可以加快速度并减少HTML文件的内存。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接