Атрибуты в элементах закрывающего тега?
Считается ли действительным делать следующее:
<li>stuff</li class="randomlengthclassname">
<li>stuff</li class="shortclassname">
<li>stuff</li class="reallyreallylongarseclassname">
или атрибут должен быть в открывающем теге?
5 ответов
Нет, это не так. Вы должны использовать атрибуты в открывающем теге.
Бег <a>test</a href="tst.html">
в валидаторе w3c приводит к этой ошибке:
недопустимый начальный символ имени: здесь разрешены только 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
Это недопустимо, и все атрибуты должны быть определены в открывающем теге.
Атрибут должен быть в открывающем теге. Код, который вы представили, вероятно, не будет работать.
Атрибуты должны появиться в начальном теге элемента. Цитирование W3C: На SGML и HTML Атрибуты:
... Пары атрибут / значение появляются перед последним ">" начального тега элемента. Любое количество (допустимых) пар значений атрибутов, разделенных пробелами, может появляться в начальном теге элемента. Они могут появляться в любом порядке.
Закрывающие теги могут не содержать атрибутов. Но в HTML4 вы можете опустить закрытие LI
:
<!ELEMENT LI - O (%flow;)* -- list item -->
<!ATTLIST LI
%attrs; -- %coreattrs, %i18n, %events --
>
Start tag: required, End tag: optional
В XHTML вы не можете.