ネストされたカウンターとスコープを使用して、順序付きリストを作成します。
ol {
counter-reset: item;
padding-left: 10px;
}
li {
display: block
}
li:before {
content: counters(item, ".") " ";
counter-increment: item
}
<ol>
<li>one</li>
<li>two</li>
<ol>
<li>two.one</li>
<li>two.two</li>
<li>two.three</li>
</ol>
<li>three</li>
<ol>
<li>three.one</li>
<li>three.two</li>
<ol>
<li>three.two.one</li>
<li>three.two.two</li>
</ol>
</ol>
<li>four</li>
</ol>
私は次の結果を期待しています:
1. one
2. two
2.1. two.one
2.2. two.two
2.3. two.three
3. three
3.1 three.one
3.2 three.two
3.2.1 three.two.one
3.2.2 three.two.two
4. four
代わりに、これは私が見るものです(間違った番号付け):
1. one
2. two
2.1. two.one
2.2. two.two
2.3. two.three
2.4 three <!-- this is where it goes wrong, when going back to the parent -->
2.1 three.one
2.2 three.two
2.2.1 three.two.one
2.2.2 three.two.two
2.3 four
私は手がかりがありません、誰がそれが間違っているのか見ていますか?
ここにJSFiddleがあります: http://jsfiddle.net/qGCUk/2/
「CSSの正規化」のチェックを外します- http://jsfiddle.net/qGCUk/3/ その中で使用されるCSSリセットは、デフォルトですべてのリストのマージンとパディングを0にします
UPDATEhttp://jsfiddle.net/qGCUk/4/ -含める必要がありますメイン<li>
のサブリスト
ol {
counter-reset: item
}
li {
display: block
}
li:before {
content: counters(item, ".") " ";
counter-increment: item
}
<ol>
<li>one</li>
<li>two
<ol>
<li>two.one</li>
<li>two.two</li>
<li>two.three</li>
</ol>
</li>
<li>three
<ol>
<li>three.one</li>
<li>three.two
<ol>
<li>three.two.one</li>
<li>three.two.two</li>
</ol>
</li>
</ol>
</li>
<li>four</li>
</ol>
このスタイルを使用して、ネストされたリストのみを変更します。
ol {
counter-reset: item;
}
ol > li {
counter-increment: item;
}
ol ol > li {
display: block;
}
ol ol > li:before {
content: counters(item, ".") ". ";
margin-left: -20px;
}
これをチェックしてください:
問題は修正されたようです。
表示されるもの(ChromeおよびMac OS Xの下)
1. one
2. two
2.1. two.one
2.2. two.two
2.3. two.three
3. three
3.1 three.one
3.2 three.two
3.2.1 three.two.one
3.2.2 three.two.two
4. four
の代わりに:
<li>Item 1</li>
<li>Item 2</li>
<ol>
<li>Subitem 1</li>
<li>Subitem 2</li>
</ol>
Do:
<li>Item 1</li>
<li>Item 2
<ol>
<li>Subitem 1</li>
<li>Subitem 2</li>
</ol>
</li>
これは素晴らしい解決策です!いくつかの追加のCSSルールを使用して、MS Wordアウトラインリストのように、ぶら下げて最初の行のインデントを設定できます。
OL {
counter-reset: item;
}
LI {
display: block;
}
LI:before {
content: counters(item, ".") ".";
counter-increment: item;
padding-right:10px;
margin-left:-20px;
}
最近、同様の問題に遭遇しました。修正は、順序付きリストのliアイテムの表示プロパティをlist-itemに設定し、ブロックを表示せず、olの表示プロパティがlist-itemでないことを確認することです。すなわち
li { display: list-item;}
これにより、htmlパーサーはすべてのliをリストアイテムとして認識し、適切な値を割り当て、設定に基づいてインラインブロックまたはブロック要素としてolを認識し、カウント値を割り当てようとしません。それ。