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

时间:2010-11-09 20:05: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 -->

我想知道在语法上是否可以这样做:

<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">
  

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

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

  1. 结束标记的第一个字符必须是U + 003C LESS-THAN SIGN 字符(&lt;)。
  2. 结束标记的第二个字符必须是U + 002F SOLIDUS字符(/)。
  3. 结束标记的下几个字符必须是 元素的标签名称。
  4. 标签名称后面可能有一个或多个 空格字符。
  5. 最后,必须用U + 003E关闭结束标签 大于标志的字符(&gt;)。
  6. 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">
    

    虽然这会增加更多文字,32个额外字符与原版或具有隐藏类的标记,但您可以使用CSS隐藏它们。

    [z] {
        display: none;
    }
    

6 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:5)

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

答案 2 :(得分:5)

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

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

EDITED

或者您可以制作自己的html标签。

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

document.createElement('foo-bar');

答案 3 :(得分:4)

简短回答,

请改用评论。

答案 4 :(得分:1)

匹配开头<div id="myDivID">和 关闭</div>标签,此javascript可能会有所帮助。 此函数将注释每个结束的div标签 并用div的ID属性标记它, 这样的结果:

<div id="myDivID">
    <p>
        Lorem ipsum dolor sit amet, consectetur 
        ... 
        anim id est laborum.
    </p>
</div><!-- end #myDivID -->

即使渲染的页面是 删除评论(通过WordPress,如 原始问题)。只需触发或注入 随时随地运行,然后查看或保存 来源。正如其他人先前指出的那样, 评论不违反其他规范 建议。

此简短功能应该易于理解和 出于类似目的进行修改。 (请注意insertBefore 解决方法,因为没有JS insertAfter方法。)

var d = window.document;
insertCommentAtDivCloseTag(d);  

function insertCommentAtDivCloseTag(document) { 
    var d = document;
    var divList = d.getElementsByTagName('div');
    var div = {};
    for (div of divList) {
        var parent = div.parentNode;
        var newNode = new Comment(' end #' + div.id + ' ');
        parent.insertBefore(newNode, div.nextSibling);
    }
}

答案 5 :(得分:-4)

标识符应该是唯一的。 一个 id引用一个元素,并且只在您的代码中出现一次,如果您希望识别多个元素,则应使用类。