替换<ol start =“...”> </ol>

时间:2012-03-03 13:40:00

标签: html css deprecated w3c

我一直在玩start元素中的ol属性。

正如您所知,start已被宣布在HTML 4.01和XHTML 1.1等官方标准中被弃用,而W3C并未打算向我们解释如何在没有它的情况下解决问题。是的,HTML5尚未推荐,但问题仍然存在。

Ordered Lists <OL>, Starting index with XHTML Strict?很好地解释了如何解决它。但仅适用于数字列表(类型=“1”)。其他类型怎么样?

我创建了jsFiddle,我的问题是,可以吗?您是否可以删除start属性并将其替换为CSS,以使结果与原始结果相同?或者W3C在他们弃用它的那天只有一个大脑放屁?

3 个答案:

答案 0 :(得分:2)

您可以在counter() CSS属性(specification)中为content指定第二个参数:

ol.roman18 {
    margin: 1em 0;
    counter-reset: item 17; /* The first list item will start at 18, XVIII */
}
ol.roman18 li {
    margin: 0 0 0 4em;
}
ol.roman18 li:before {
    content: counter(item, upper-roman) '.';
    counter-increment: item;
    /* Alignment */
    position: absolute;
    margin-left: -3.5em;
    text-align: right;
    width: 3em;
}

PS。 item不是必需的名称,它只是计数器的标识符。如果您愿意,可以将其替换为小马:http://jsfiddle.net/kRPDH/4/

演示:http://jsfiddle.net/kRPDH/6/

答案 1 :(得分:1)

我可以为你的问题提出4种方法 1.将doctype更改为transitional或HTML5(有很好的支持) 2.使用js 3.将计数器包含在li元素本身内(如果页面中也有可以列出的列表,则不可取) 4.许多人建议使用css计数器。有关详细说明,请参阅此http://dev.opera.com/articles/view/automatic-numbering-with-css-counters/

答案 2 :(得分:0)

尝试这个小提琴:http://jsfiddle.net/Wvp2b/1/

juts将upper-romans添加为counter函数的第二个参数,并将您的计数器变量设置为17