2008-11-04 46 views
4

我有一個XML文檔,我嘗試通過CSS進行樣式設置。該XML的相關片段看起來是這樣的:僅當存在多個項目時才通過CSS對列表進行編號

<senseBlock> 
    <prelim>Not numbered</prelim> 
    <sense>first item</sense> 
    <sense>second item</sense> 
    <sense>third item</sense> 
</senseBlock> 

我需要出示<sense>元素的有序列表,但前提是在列表中有多個<sense>元素。在只有一個<sense>元素的列表中,我需要它顯示爲沒有任何數字的正常段落。

現在我的造型我的名單是這樣,但我不知道如何隱藏數字時,只有一個項目:

senseBlock { 
    display: block; 
    counter-reset: sense; 
} 

prelim { 
    display: block; 
} 

sense { 
    display: list-item; 
    list-style: decimal inside; 
} 

sense:before { 
    counter-increment: sense; 
} 

我想過使用相鄰選擇像sense + sense檢測多個項目,但那樣會不會在我的列表中設置第一個元素。我幾乎斷定,如果不修改XML,這是不可能的,但我想我放棄之前將這個挑戰擴展到社區。

這隻需要在最新版本的Safari for iPhone中工作。

回答

6

啊哈!我自己使用CSS3最後一個孩子僞選擇器來解決這個問題。這個CSS達到了預期的效果:

senseBlock { 
    display: block; 
    counter-reset: sense; 
} 

prelim { 
    display: block; 
} 

sense { 
    display: list-item; 
    list-style: decimal inside; 
} 

sense:before { 
    counter-increment: sense; 
} 

prelim + sense:last-child { 
    display: block; 
} 
相關問題