2014-01-26 60 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)。好吧,看起來沒有什麼可以,但如果我想保持跨瀏覽器兼容性,那就使用計數器。謝謝! –