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