Ошибка рендеринга IE6. Немного проанализированные <литий> элементы теряют их закрывающие тэги

Я работал с IE6 много лет [рыдание], но никогда не видел этой конкретной ошибки прежде, и я, может казаться, не нахожу ссылку на него в сети. Проблема, кажется, с тем, как IE6 анализирует HTML вложенного списка. Даже при том, что разметка корректна, IE6 так или иначе munges код, когда это анализируется и отбрасывает закрывающие тэги части из <li> элементы.

Например, возьмите следующий код:

<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
</head>
<body>
<div>
    <ul>
        <li><a href=''>Child A</a>
            <div>
                <ul>
                    <li><a href=''>Grandchild A</a></li>
                </ul>
            </div>
       </li>
       <li><a href=''>The Child B Which Is Not A</a>
            <div>
                <ul>
                    <li><a href=''>Grandchild B</a></li>
                    <li><a href=''>Grandchild C</a></li>
               </ul>
            </div>
      </li>
      <li><a href=''>Deep Purple</a></li>
      <li><a href=''>Led Zeppelin</a></li>
    </ul>
</div>
</body>
</html>

Теперь смотрите на то, как IE6 представляет этот код, после того, как он выполнил его через механизм визуализации IE6:

<HTML>
<HEAD>
<TITLE>My Page</TITLE></HEAD>
<BODY>
    <DIV>
        <UL>
            <LI><A href="">Child A</A> 
                <DIV>
                    <UL>
                        <LI><A href="">Grandchild A</A> </LI>
                    </UL>
                </DIV>
            <LI><A href="">The Child B Which Is Not A</A> 
                <DIV>
                    <UL>
                        <LI><A href="">Grandchild B</A> 
                        <LI><A href="">Grandchild C</A> </LI>
                    </UL>
                </DIV>
            <LI><A href="">Deep Purple</A> 
            <LI><A href="">Led Zeppelin</A> </LI>
        </UL>
    </DIV>
</BODY>
</HTML>

Отметьте как на части из <li> элементы там больше не являются никакими закрывающими тэгами, даже при том, что это существовало в источнике HTML.

У кого-либо есть какая-либо идея, что могло инициировать эту ошибку, и если возможно избежать его? Это, кажется, источник некоторых проблем визуального представления в IE6.

Большое спасибо за любой совет.

1
задан Jeff Fohl 5 May 2010 в 15:28
поделиться

1 ответ

В режиме чистого HTML (неXHTML) не требуется. То же самое относится к

и еще нескольким закрывающим тегам. Возможно, движок IE6 как-то "оптимизировал" их.

Вот выдержка из W3C spec об элементе

  • :

    
    
    

    Начальный тег: обязательный, Конечный тег: необязательный

    Обратите внимание на последнюю строку.

    Проблемы с визуальным отображением, о которых вы говорите, чаще всего связаны с hasLayout ошибками.

  • 2
    ответ дан 3 September 2019 в 00:47
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: