我可以在结束标签上拥有属性吗?

MB3*_*B34 46 html

有许多人标记这样的结束标记,以帮助识别与HTML标记一起使用的结束标记:

<div id="header">
  <div id="logo">
    <a href="index.php">
      <img id="logoimg" src="images/as_logo.png" alt="Logo" border="0" />
    </a>
  </div> <!-- logo -->
</div> <!-- header -->
Run Code Online (Sandbox Code Playgroud)

我想知道这样做是否符合语法:

<div id="header">
  <div id="logo">
    <a href="index.php">
      <img id="logoimg" src="images/as_logo.png" alt="Logo" border="0" />
    </a>
  </div id="logo">
</div id="header">
Run Code Online (Sandbox Code Playgroud)

更新:以下是HTML5.3规范中的文字:

8.1.2.2.结束标记
结束标记必须具有以下格式:

  1. 结束标记的第一个字符必须是U + 003C LESS-THAN SIGN字符(<).
  2. 结束标记的第二个字符必须是U + 002F SOLIDUS字符(/).
  3. 结束标记的下几个字符必须是元素的标记名称.
  4. 在标记名称之后,可能存在一个或多个空格字符.
  5. 最后,结束标记必须由U + 003E GREATER-THAN SIGN字符(>)关闭.

8.1.2.3.属性
元素的属性在元素的开始标记内表示.

请注意,只有START TAGS允许使用属性.

使用@jbyrds的想法; 使用HR标签可以查看是否忘记了z属性:

<div id="header">
  <div id="logo">
    <a href="index.php" id=link">
      <img id="logoimg" src="images/as_logo.png" alt="Logo" border="0" />
    </a><hr z="link">
  </div><hr z="logo">
</div><hr z="header">
Run Code Online (Sandbox Code Playgroud)

虽然这会增加更多文本,32个额外字符与原始文件或具有隐藏类的标签,但您可以使用CSS来隐藏它们.

[z] {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*rko 6

简短的回答,

请改用评论。

  • 对于XHTML,http://www.w3.org/TR/REC-xml/#dt-etag。对于HTML5,http://dev.w3.org/html5/spec/Overview.html#end-tags。HTML4是根据SGML定义的,遗憾的是不能免费获得官方ISO规范文档。 (5认同)
  • 指向我说的W3C文档吗? (3认同)
  • 好吧,这不是规范的一部分,那么为什么会有文档呢?:) (2认同)

Bla*_*ake 6

大多数标签的答案都是肯定的.但是,您可以认为像"img"这样可以自动关闭的标签可以在其中包含属性.但是这些自动关闭标签取代了开始标签和结束标签,因此它与在结束标签中具有属性不同.说实话,实际上没有必要这样做,它只会为浏览器创建更多内容,以便阅读并使页面大小更大.

  • OP特别指出,这是为了帮助识别匹配的标签,即用于可读性。这甚至不是答案,而是一种意见。@drudge在他们的评论中以w3c验证程序的错误输出来更好地介绍了它。 (3认同)

Ari*_*ief 5

不,不可能.某些浏览器会忽略它,但也许其他一些浏览器会抱怨并且不会正确显示HTML.

  • 那太糟糕了. (4认同)
  • 哪些浏览器无法正确显示HTML? (3认同)

Pét*_*nyi 5

抱歉,但它不起作用且无法验证.

如果在结束标记中尝试其他属性,则浏览器会跳过该属性.我尝试了几种方法,用ids和类测试它,而css和javascript在结束标记中没有识别它们.你最好的选择是评论.

EDITED

或者你可以制作自己的html标签.

你必须使用连字符,你应该避免

document.createElement('foo-bar');
Run Code Online (Sandbox Code Playgroud)

  • 您可以定义自定义标签,然后开始和结束标签将带有您想要的名称,例如:&lt;x-logo&gt; .... &lt;/x-logo&gt; (2认同)