Html ul的允许子元素

Html ul的允许子元素,html,Html,我正在维护一个旧应用程序,遇到以下代码: <ul> <li>...</li> <li>...</li> <li>...</li> <li>...</li> <li>...</li> <div> <li>...</li> <li>...</li>

我正在维护一个旧应用程序,遇到以下代码:

<ul>
   <li>...</li>
   <li>...</li>
   <li>...</li>
   <li>...</li>
   <li>...</li>
   <div>
      <li>...</li>
      <li>...</li>
   </div>
</ul>
我以前从未见过
div
标记作为
ul
元素的子元素。HTML在浏览器中呈现良好


这是有效的HTML吗?我的直觉是这是一个奇怪的用法。然而,这也许是完全正常和有效的?在
ul
元素中嵌套
div
元素是否合适?您是赞成还是反对这一点?

它在任何版本的HTML中都无效,请参见例如

不过,浏览器允许它,并对其进行解析,使
div
成为
ul
的子项,并且允许您对
div
进行样式设置。这可能就是使用此标记的原因。

您可以使用它进行检查。
错误:
1.文档类型此处不允许元素“DIV”;假设缺少“LI”起始标记
2.文档类型此处不允许元素“LI”;缺少一个“UL”、“OL”起始标签

The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.  

One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").
所述元素不允许出现在您放置它的上下文中;其他提到的元素是唯一既允许存在又可以包含提到的元素的元素。这可能意味着您需要一个包含元素,或者您可能忘记关闭前一个元素。
出现此消息的一个可能原因是您试图将块级元素(如“”或“)放入内联元素(如“、”或“)中。
HTML(
)表示无序的项目列表,即没有数字顺序的项目集合,它们在列表中的顺序没有意义。通常,无序列表项会显示一个项目符号,它可以有几种形式,如点、圆或正方形。项目符号样式不是在页面的HTML描述中定义的,而是使用列表样式类型属性在其关联的CSS中定义的

允许的内容

零个或多个
  • 元素,最终与
      元素混合

      用法示例:

      <ul>
        <li>first item</li>
        <li>second item</li>
        <li>third item</li>
      </ul>
      
      • 第一项
      • 第二项
      • 第三项
      您可以在
    • 内使用
      标记,如下所示:

      <ul>
        <li>first item</li>
        <li>second item</li>
        <li>
            third item
            <div>Third Item Contente</div>
        </li>
      </ul>
      
      • 第一项
      • 第二项
      • 第三项 第三项内容

      据我所知,这是一种无效的用法(这并不意味着它不会在浏览器中按预期呈现),但您可以随时检查html的有效性@you coukd使用两个
        列表,因为您在“li”列表中不能有一个“div”。