【问题标题】:P-end-tag (</p>) is not needed in HTML [closed]HTML中不需要P-end-tag(</p>)[关闭]
【发布时间】:2012-01-17 15:51:12
【问题描述】:

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

在下面混合使用&lt;/p&gt; 会是一个坏主意吗?请注意,第 1 和第 3 段中没有结束 &lt;/p&gt; 标记。

<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-tags 的原因:

  • 在我的 CMS 中易于使用(要求更高的代码使其成为 XHTML)
  • 1kb 较轻的文件

【问题讨论】:

  • 关闭它有什么伤害吗?
  • 始终编写格式良好的 HTML。 你有什么反对关闭 &lt;p&gt;(或任何其他)标签的原因?这是一种非常糟糕的做法,会导致混乱、错误和死猫。
  • 我同意。您应该始终关闭您的 HTML 标记。仅仅因为某些标准不要求它们并不意味着这是可以接受的。如果您需要更有说服力的理由,您可以避免浏览器间的不兼容性。
  • 大部分时间在代码中也不需要在语法上使用空格。可读性是另一回事。

标签: html paragraph


【解决方案1】:

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

正确

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

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

混合使用 P-end-tag 会不会是一个坏主意

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

【讨论】:

  • 这使得仅使用 P-start-tag 就可以保持一致性 :D IMG-tags 是否可以将它们放在 P-tags 中(使用 "style="display:block" )?“这通常是个坏主意”是什么意思。
  • 将内联元素和块元素作为同级元素几乎没有语义意义。
【解决方案2】:

HTML5 引用明确说明何时可以省略 p

因为这就是大多数 Google 员工必须来这里的原因:4.4.1 “p 元素”https://html.spec.whatwg.org/multipage/grouping-content.html#the-p-element

文本/html中的标记省略:

如果 p 元素后面紧跟着地址、文章、aside、blockquote、details、div、dl、fieldset、figcaption、figure、footer、form、h1、h2、h3,则可以省略 p 元素的结束标记h4、h5、h6、header、hgroup、hr、main、menu、nav、ol、p、pre、section、table 或 ul 元素,或者如果父元素中没有更多内容且父元素是 HTML不是 a、audio、del、ins、map、noscript 或 video 元素或自主自定义元素的元素。

值得注意的是,其他一些结束标签也可以省略,例如li:https://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 is not a subset of XML 的原因之一。

历史课

我在 Wikipedia 上阅读 HTML 的历史,当我到达关于 IBM Generalized Markup Language 的页面时,它是 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.

例子是copied verbatim from the home page of one of the creators of GML

所以这个世界是如何运转的有点好笑。在 70 年代,人们已经想要自动关闭。然后它演变成 XML,这是一种更明智的禁止自动关闭的东西。但后来我们在 HTML 中自动关闭。 HAML template 语法也浮现在脑海中。也不是标签名称与 HTML 中的名称相同(h1polli)。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      您只需要完成最后一个&lt;p&gt; 标签。 示例:

      <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 文件的内存。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-24
        • 1970-01-01
        • 2020-04-16
        • 2020-06-01
        • 1970-01-01
        • 2012-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多