我一直在玩start
元素中的ol
属性。
正如您所知,start
已被宣布在HTML 4.01和XHTML 1.1等官方标准中被弃用,而W3C并未打算向我们解释如何在没有它的情况下解决问题。是的,HTML5尚未推荐,但问题仍然存在。
有Ordered Lists <OL>, Starting index with XHTML Strict?很好地解释了如何解决它。但仅适用于数字列表(类型=“1”)。其他类型怎么样?
我创建了jsFiddle,我的问题是,可以吗?您是否可以删除start
属性并将其替换为CSS,以使结果与原始结果相同?或者W3C在他们弃用它的那天只有一个大脑放屁?
答案 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/。
答案 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