2016-03-30 25 views
2

20番目の項目以降に開始するCSSカウンタを20にリセットしたいと考えています。目標は、付随する「20」の数字を持つ2つのリスト項目を持ち、通常どおりリストを続けることです。手動でCSSカウンタを増やす

ol { 
    list-style-type: none; 
    counter-reset: quote-counter; 
} 
ol .list-item__inner::before { 
    content: counter(quote-counter); 
    counter-increment: quote-counter; 
} 

これはおそらく(これはもちろん動作しません)?

li:nth-child(20) { 
    counter-reset: quote-counter 20; 
} 
+0

また、[here](https://jsfiddle.net/r91wsakf/)のように、20番目の 'li'要素の':after'疑似文でカウンタを1減らすこともできます。 – Harry

答えて

1

あなたの問題は、あなたが欲しいの繰り返しを得るためにn - 2resetにしたいのでcounter-incrementが呼び出される前にcounter-resetプロパティはカウンタを設定することである。

ol { 
 
    list-style-type: none; 
 
    counter-reset: quote-counter; 
 
} 
 
ol li::before { 
 
    content: counter(quote-counter) ". "; 
 
    counter-increment: quote-counter; 
 
} 
 

 
li:nth-child(6) { 
 
    counter-reset: quote-counter 4; 
 
}
<ol> 
 
    <li>first</li> 
 
    <li>second</li> 
 
    <li>third</li> 
 
    <li>fourth</li> 
 
    <li>fifth</li> 
 
    <li>sixth</li> 
 
    <li>seventh</li> 
 
</ol>

あなたはcounter-resetおよびの注文のためにn - 1ではなく、n - 2が必要ですを適用する必要があります。コンテンツに、

継承カウンタがリセットカウンタの前に行う必要があり、設定カウンタの前に行う必要があり、インクリメントカウンタの前に行われなければならない(例えば、カウンタを使用する前に行わなければならない:仕様から引用プロパティ)。

リセットがインクリメントの前に行われるので、インクリメントによって正しい数になるように、カウンタをもう一度後ろに移動する必要があります。

+0

チャームのように働いて、ありがとう!私は 'n - 2'に'リセット 'する必要があるのか​​どうか精巧に考えてもらえますか? – jasonetco

+0

'counter-reset'は' counter-increment'の前に呼び出されます - 同じ番号を繰り返すには、カウンタを 'desiredNumber-1'(またはこの場合は' nth-child-2')に設定する必要があります。最後のセレクタを 'li:nth-​​child(6):: before'に変更すると' quote-counter:n-1'(例えば 'quote-counter 5')を使うべきです。 –

+0

実際には、その点を言いなさい - 仕様の詳細が見つかりました - 私は答えを更新します。 –

関連する問題