2009-03-02 124 views
5

我试图找出如何创建一个递增的目前针对IE6和IE7的有序列表。在订单清单的列表项中嵌套列表项?

E.G.它应该呈现类似下面:

1.0 
    1.1 
    1.2 
    1.3 
2.0 
    2.1 
    2.2 

据我了解,这是可能的CSS创建像这样的东西:

UL, OL { counter-reset: item; } 
LI { display: block } 
LI:before { content: counters(item, "."); counter-increment: item } 

但是,当然,IE6和IE7不支持这个。

什么选项可用于在IE6/7中创建适当的增量列表?我坚持要硬编码这个。?不幸的是,使用JavaScript不是一种选择。

是否有更新的浏览器更新方法?

+0

Ø顺便说一句,谢谢安德鲁格式化修复。 – 2009-03-03 13:09:26

回答

0

如果javascript不是一个选项(因此我也假设没有flash),我很抱歉地说你没有选择客户端解决方案。如果您有一个生成HTML的服务器端脚本,则可以将订购推送到服务器,并使用CSS将客户端上的输出简单地设置为无序列表的无序列表。 IE6是你的限制因素,并没有太多方法。对不起,成为坏消息的持有者。

0

如果JavaScript不是一个选项,您将必须在服务器端对其进行硬编码/实现。

积极的一面是:它可以用于其他性能较差的用户代理/设备(比如BlackBerry Browser等)。

1

XSLT(包括XSLT 1.0)可以生成多级编号序列,其编号为<xsl:number>

+0

这看起来像是一种可能性,因为最终的输出是严格的XHTML 1.0。感谢所有的快速反应。任何其他建议都将不仅仅是愉快的考虑。 – 2009-03-02 16:07:48

1

这里是一个CSS唯一的解决办法(应在IE8及以上工作):

<ol> 
    <li> 
     Heading 
     <ol> 
      <li>list</li> 
      <li>list</li> 
     </ol> 
    </li> 
    <li> 
     Heading 
     <ol> 
      <li>list</li> 
      <li>list</li> 
     </ol> 
    </li> 
</ol> 



ol{ 
    list-style-position:inside; 
    list-style-type: none; 
    counter-reset:mainNum; 
} 

ol li:before{ 
    content: counter(mainNum) ".0"; 
    counter-increment:mainNum; 
} 

ol ol{ 
    counter-reset:item; 
} 

ol ol li{ 
    list-style-type:none 
} 

ol ol li:before{ 
    content: counter(mainNum) "." counter(item) " "; 
    counter-increment:item; 
}