Internet Explorer不会为非兄弟<li>元素增加数字</li>

时间:2010-05-10 18:24:54

标签: html css internet-explorer html-lists

我有一些看起来像这样的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 个答案:

答案 0 :(得分:4)

很简单,直接在<div>内的<ol>无效,因此secons选项更好。

此处specifications已清除,<ul><ol>只能包含<li>元素。最好编写符合标准的HTML - 否则,浏览器更有可能出现意外行为。

答案 1 :(得分:0)

您的HTML无效。首先,出现的数字是来自浏览器的默认表示,但不是HTML的功能约定。其次,验证您的代码,问题将是自我解释的。

答案 2 :(得分:0)

用任何东西包围LI标签是不正确的。 UL和OL只能包含LI标签。 LI标签可以包含任何内容。

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

答案 3 :(得分:0)

简单......标签有一些优先级。另外,“或

  • ”标签不能充当容器标签。所以它永远不应该保留整个结构。