IE解析UL和LI的规则和问题

今天遇到一个问题,IE6和IE8解析同一个HTML,出现了2种结果

<html>

  <head>

  </head>

  <body>

    <ul id="ul1">

      <li id="li1"><a>test1</a></li>

      <ul id="ul2">

        <li><a>test2></a></li>

      </ul>

    </ul>

  </body>

</html>

以上html代码其中还有样式,这里就不写出来了。

IE6解析后代码结构变为(如下图),其实就是和li1同一层级的ul2变成了li的子集。

<html>

  <head>

  </head>

  <body>

    <ul id="ul1">

      <li id="li1">

                    <a>test1</a>

         <ul id="ul2">

        <li><a>test2></a></li>

        </ul>

                </li>

    </ul>

  </body>

</html>

IE8解析后代码结构变为(如下图),没有发生变化。

<html>

  <head>

  </head>

  <body>

    <ul id="ul1">

      <li id="li1"><a>test1</a></li>

      <ul id="ul2">

        <li><a>test2></a></li>

      </ul>

    </ul>

  </body>

</html>

至此,我们得出结论,IE6没IE8智能,但是其实这是错的,其实IE8在不加样式的情况下测试这段代码也应该和IE6相同,只不过是样式的问题而强行让IE8按照开发者写的html格式来解析。是什么css样式起了作用,还无从而知。

原文地址:https://www.cnblogs.com/hero8377/p/2249140.html