Разрешено ли браузерам отображать <li>s в любом порядке? - PullRequest
6 голосов
/ 27 мая 2010

Как я понимаю в спецификации XML, значение порядка дочерних элементов не гарантируется. Синтаксические анализаторы XML, как правило, хранят дочерние элементы в том же порядке, в каком они встречаются в документе XML, но они не обязаны это делать.

Если это так, то могут ли браузеры отображать <li> в <ol> или <ul> в другом порядке, чем в XHTML? Или в спецификации XHTML где-то указано, что порядок должен быть сохранен?

Я понимаю, что все основные браузеры будут уважать порядок моих <li> с. Меня просто интересует академический вопрос о том, обязаны ли они технически.

Ответы [ 3 ]

5 голосов
/ 27 мая 2010

Я думаю, что вы совершенно неправильно прочитали спецификацию XML там! Порядок содержимого элемента не должен изменяться в построенной из него модели. (Примечание: порядок представления мог бы быть другим, если бы было определенные инструкции для визуального изменения порядка. Но это было бы странно, и я не знаю, может ли нынешний CSS это сделать.) Единственная часть действительно неупорядоченного XML - это атрибуты; это настоящая неупорядоченная карта.

FWIW, содержимое <ul> определяется как последовательность (т.е. упорядочено!) Из <li> элементов, поэтому браузеры не могут переупорядочивать при построении дерева документа. То есть изменение порядка будет совершенно неправильным, и никто (даже команда разработчиков IE) не настолько глуп, чтобы сделать это.

4 голосов
/ 27 мая 2010

Согласно схеме XHTML 1.1 для объектов списка содержимое

  • элементов. При проверке спецификации XML-схемы кажется, что работает так, что «... элементы информации об элементе соответствуют частицам в последовательном порядке ...». Это подразумевает, что порядок таких последовательностей имеет смысл и должен быть сохранен.
0 голосов
/ 27 мая 2010

Даже если они не обязаны это делать, не беспокойтесь. Если нет исключительных обстоятельств (о которых я даже не знаю ни одного), синтаксический анализатор HTML5 / SGML / XML для HTML / XHTML будет помещать элементы в DOM по мере их появления в документе.

Не связано: если вы используете XHTML, не забудьте отправить его в виде application / xhtml + xml (кроме IE; проверьте заголовок Accept) - такая простая вещь, которую большинство разработчиков не знают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...