Поскольку я понимаю спецификацию XML, значение порядка дочерних элементов не гарантируется. Синтаксические анализаторы XML имеют тенденцию сохранять дочерние элементы в том же порядке, как они происходят в XML-документе, но они не обязаны делать так.
Если это так, то является браузерами, свободными представлять <li>
s в <ol>
или <ul>
в другом порядке, чем они происходят в XHTML? Или это указано в спецификации XHTML где-нибудь, что порядок должен быть сохранен?
Я понимаю, что все главные браузеры будут уважать порядок моего <li>
s. Я просто интересуюсь академическим вопросом того, обязаны ли они технически.
Согласно схеме XHTML 1.1 для объектов списка содержимое
Даже если они «не обязаны» это делать, не волнуйтесь. Если нет исключительных обстоятельств (о которых я не знаю ни одного), синтаксический анализатор HTML5 / SGML / XML для HTML / XHTML будет помещать элементы в DOM так, как они появляются в документе.
Несвязано: если вы используете XHTML, не забудьте отправить его как application / xhtml + xml (кроме IE; проверьте заголовок Accept) - такая простая вещь, о которой большинство разработчиков не знает.
Я думаю, вы совершенно неправильно прочитали там спецификацию XML! Порядок содержания элемента не должен изменяться в модели, построенной из него. (NB: порядок представления мог бы быть другим, если бы были конкретные инструкции для визуального изменения порядка. Но это было бы странно, и я не знаю, может ли текущий CSS это сделать.) Единственная часть подлинно неупорядоченного XML - это атрибуты; они настоящая неупорядоченная карта.
FWIW, содержимое
определяется как последовательность (т. Е. Упорядоченная!) Элементов
, поэтому браузеры не может изменить порядок при построении дерева документа. То есть переупорядочивание было бы совершенно неправильным, и никто (даже команда разработчиков IE) не достаточно глуп, чтобы это сделать.