32

</p>仅在 XHTML 中需要,而在 HTML 中不需要。有时您无论如何都必须关闭它,例如当您将段落左/右/居中对齐时。

在下面混合使用</p>as 是一个坏主意吗?请注意,第 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 轻量级文件
4

4 回答 4

48

P-end-tag 仅在 XHTML 中需要,在 HTML 中不需要。

正确的

但有时你必须以任何方式关闭它,例如。当您将段落左/右/居中对齐时。

不正确。唯一需要显式结束标记的情况是,当您想要结束段落并紧跟段落内允许的内容(例如文本或内联元素)时。这通常是个坏主意。

出于任何原因混合使用 P-end-tag 会是一个坏主意吗

只有这种一致性才是有助于代码维护的美德。

于 2011-12-11T00:25:19.860 回答
11

HTML5 引用清楚地表明何时p可以省略

因为这就是大多数 Google 员工必须来这里的原因: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,则可以省略 p 元素的结束标记、h6、header、hgroup、hr、main、menu、nav、ol、p、pre、section、table 或 ul 元素,或者如果父元素中没有更多内容并且父元素是 HTML 元素不是 a、audio、del、ins、map、noscript 或 video 元素,也不是自主自定义元素。

值得注意的是,其他一些结束标签也可以省略,例如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 子集的原因之一。

历史课

我在 Wikipedia 上阅读 HTML 的历史,当我看到关于IBM 通用标记语言的页面时,它是 SGML 的前身,它是 SGML 的前身,它是 XML 的前身,它是 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 年代,人们已经想要自动关闭。然后它演变成 XML,这是一种更明智的禁止自动关闭的东西。但后来我们在 HTML 中自动关闭。HAML 模板语法也浮现在脑海中。h1也不是标签名称与 HTML ( , p, ol, li)中的标签名称如何相同。

于 2019-12-12T15:27:21.830 回答
3

我想不出你不能这样做的任何原因,但强烈建议在任何地方都使用开始和结束标签以保持一致性。当您决定开始遵循 XHTML 标准时,它也会变得更容易。

于 2011-12-11T00:24:54.877 回答
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 文件的内存。

于 2016-02-23T09:14:41.390 回答