在有序列表的列表项中嵌套列表项?

时间:2009-03-02 15:06:40

标签: html css html-lists

我试图弄清楚如何创建目前针对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不是一种选择。

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

4 个答案:

答案 0 :(得分:1)

XSLT(包括XSLT 1.0)可以使用<xsl:number>生成多级编号序列。

答案 1 :(得分: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;
}

答案 2 :(得分:0)

如果javascript不是一个选项(因此我也假设没有闪存),我很遗憾地说你没有选择客户端解决方案。如果您有一个生成HTML的服务器端脚本,您可以将订单推送到服务器,并使用CSS作为无子弹的无序列表在客户端上设置输出样式。 IE6是你的限制因素,并没有很多方法可以解决这个问题。很抱歉成为坏消息的承担者。

答案 3 :(得分:0)

如果JavaScript不是一个选项,您将不得不在服务器端硬编码/实现它。

积极的一面是:它可以立即用于其他功能较弱的用户代理/设备(想想黑莓浏览器等)。