HTML で使用<ol type="1">
すると、次のような順序付きリストを取得できます。
- 私はチーズが好きです
- クッキーいいですね
- クリームいいなぁ…
<ol>
このように、奇数番号のみを持つ順序付きリストを取得するにはどうすればよいでしょうか?
1.チーズが好き
3.食事がうまい
5.星に願いを…
HTML で使用<ol type="1">
すると、次のような順序付きリストを取得できます。
<ol>
このように、奇数番号のみを持つ順序付きリストを取得するにはどうすればよいでしょうか?
1.チーズが好き
3.食事がうまい
5.星に願いを…
利用可能な属性は次のように見えるため(HTML5を含む)、通常の順序付きリストではこれを達成できないと思います。
ただし、以下のスニペットのような CSS カウンターを使用して実現できます。CSS カウンターは新しいものではなく、非常に優れたブラウザー サポートを備えています。
これをカウンターで実装するのは非常に簡単で、次の手順のみが必要です。
counter-reset
親のプロパティを使用してカウンターを作成 (リセット) します。通常、このcounter-reset
プロパティは、カウンターの名前と開始値をパラメーターとして受け取ります。ここでは、開始値として -1 を使用しましli
た。増分は毎回 2 ずつ必要であり、開始値は 1 である必要があるためです (つまり、-1+2 = 1)。li
aに遭遇するたびにカウンターの値を 2 ずつ増やします。これにより、カウンタは奇数の値のみを持つようになります。このcounter-increment
プロパティも一般に 2 つのパラメータを受け取ります。1 つはカウンタ名で、もう 1 つはインクリメントする値です。:before
擬似要素とcontent
プロパティを使用して、リスト項目の前にカウンターの値を表示します。ol {
counter-reset: odd-numbers -1;
list-style-type: none;
}
li {
counter-increment: odd-numbers 2;
}
li:before {
content: counter(odd-numbers) ". ";
}
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
開始値として -1 を設定しない別のオプションは、li:first-child
セレクターを使用してカウンターを 1 だけインクリメントすることです (デフォルト値であるため、 で指定する必要はありませんcounter-increment
)。残りの部分では、li
それを 2 ずつ増やすことができます。
ol {
counter-reset: odd-numbers;
list-style-type: none;
}
li:first-child {
counter-increment: odd-numbers;
}
li {
counter-increment: odd-numbers 2;
}
li:before {
content: counter(odd-numbers) ". ";
}
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
1 つの解決策は、偶数要素を非表示にするこの css ルールを使用することです。
li:nth-child(2n) {
visibility: hidden;
position: absolute;
}
li
次に、偶数規則の間に空白を入れます。
<ol>
<li>1</li>
<li></li>
<li>3</li>
<li></li>
...
</ol>