Internet Explorer не увеличивает номер для элементов, не состоящих в браке <li> - PullRequest
2 голосов
/ 10 мая 2010

У меня есть HTML, который выглядит так:

<ol>
  <div>
    <li>one</li>
  </div>
  <div>
    <li>two</li>
  </div>
  <div>
    <li>three</li>
  </div>
</ol>

Что выглядит так в Chrome / Firefox:

1. one
2. two
3. three

Но в IE это выглядит так:

1. one
1. two
1. three

Если я изменю код так, чтобы элемент li был родителем элемента div, а не наоборот (чтобы все элементы li были родственными элементами), IE отобразит его правильно. Кто-нибудь знает, что вызывает это, или это предполагаемое рабочее поведение IE? Кроме того, является ли один способ технически более правильным, чем другой?

<div><li></li></div> VS. <li><div></div></li>

Ответы [ 4 ]

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

Проще говоря, <div> непосредственно внутри <ol> недопустимо, поэтому опция секунд лучше.

Спецификации здесь ясны, <ul> и <ol> могут иметь только <li> элементов. Лучше всего писать HTML, который следует стандарту - в противном случае браузеры, скорее всего, будут вести себя неожиданно.

0 голосов
/ 10 мая 2010

Простой ... Есть несколько приоритетов для тегов. Кроме того, теги "или

" не могут выступать в качестве тегов-контейнеров. поэтому он никогда не должен сохранять всю структуру.
0 голосов
/ 10 мая 2010

Окружение тега LI чем-либо неверно. UL и OL могут содержать только теги LI. Теги LI могут содержать что угодно.

http://www.w3.org/TR/1999/REC-html401-19991224/struct/lists.html

0 голосов
/ 10 мая 2010

Ваш HTML-код недействителен. Прежде всего, отображаемое число является представлением по умолчанию из браузера, но не является функциональным соглашением HTML. Во-вторых, проверьте свой код, и проблема станет очевидной.

...