2014-01-26 61 views
1

将div制作为有序列表的正确方法是什么?模拟列表

假设你有这样的HTML

<div id="list"> 
    <span>List item one</span> 
    <span>List item two</span> 
    <span>List item three</span>  
</div> 

我是,你不需要做任何事情的印象,但这

#list {list-style:decimal; margin:1em 0 1em 2.5em;} 
#list span {display:list-item} 

,使其工作。而实际上,它在的作用下,除了Mozilla之外的所有浏览器都有的工作。见fiddle。 Mozilla不计算:所有列表项都有数字0.

那么我错过了一些重要的CSS?我确实尝试将列表样式放在跨度上,或者只在跨度上而不是div上,但这没有任何影响。

这是Gecko中的错误吗?或者,这甚至不应该起作用,并且其他浏览器是否正在自由地使用这些标准?互联网搜索令人沮丧,因为结果都是关于将样式应用于olul元素。

+2

我希望有一个很好的理由不实际使用列表元素... –

+0

似乎为我工作:http://jsbin.com/EpohUCE/1/(但是,是什么马达拉说...理想情况下,真正的列表将使用实际的'li'标记 –

+0

@MadaraUchiha是的,但我发现这个问题已经足够大,因为它已经没有进入我的动机了,这是我可以想出的最小测试案例 –

回答

0
#list {list-style:decimal; margin:1em 0 1em 2.5em;counter-reset: section;} 
#list span:before{counter-increment: section; content: counter(section) ".";} 

.... 仅适用于css3 - 包括FF。

+1

是的,好的,但这并没有回答为什么Firefox看起来与其他所有浏览器不同的问题:list-item。我的意思是,如果你不应该将它用于编号列表,那么CSS _for_是什么?你的例子不需要'list-style'。 –

+1

这是2004年的一个bug一世 想... – cox

+0

啊,我找到了。从1999年起[https://bugzilla.mozilla.org/show_bug.cgi?id=4522](https://bugzilla.mozilla.org/show_bug.cgi?id=4522)。好吧,看起来没有什么可以,但如果我想保持跨浏览器兼容性,那就使用计数器。谢谢! –