元素中的属性是否结束标记?

时间:2010-08-30 11:34:18

标签: html web-standards

执行以下操作是否有效:

<li>stuff</li class="randomlengthclassname">
<li>stuff</li class="shortclassname">
<li>stuff</li class="reallyreallylongarseclassname">

属性是否在开始标记中?

5 个答案:

答案 0 :(得分:9)

不,不是。您必须在开始标记中使用属性。

w3c validator中运行<a>test</a href="tst.html">会导致此错误:

  

名称起始字符无效:此处仅允许S分隔符和TAGC

S分隔符和TAGC是:

    S is "whitespace" separator

    [5] s =

        SPACE | (32) space
        RE | (13) CR
        RS | (10) LF
        SEPCHAR (9) HT

            -- http://xml.coverpages.org/sgmlsyn/sgmlsyn.htm#C6.2.1

    TAGC    ">"

            -- http://www.w3.org/TR/sgml.l

答案 1 :(得分:5)

这是有效,并且必须在开始标记中定义所有属性。

答案 2 :(得分:2)

该属性必须位于开始标记中。您提供的代码可能不起作用。

答案 3 :(得分:2)

属性应出现在元素的 start 标记中。引用W3C: On SGML and HTML Attributes

  

...属性/值对出现在最后的“&gt;”之前元素的开始标记。由空格分隔的任意数量的(合法)属性值对可能出现在元素的开始标记中。它们可能以任何顺序出现。

答案 4 :(得分:0)

Closing tags may not contain attributes. 但在HTML4中,您可以省略结束LI

<!ELEMENT LI - O (%flow;)*             -- list item -->
<!ATTLIST LI
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

Start tag: required, End tag: optional

在XHTML中,你可能没有。