:nth-childの指定パターンをいくつか試してみます。
サンプル実行前
:nth-childで指定する前の状態です。
:nth-childで指定した要素に背景色を付けるようにしてみます。
HTML
<div class="list"> <div class="list-item">1番目</div> <div class="list-item">2番目</div> <div class="list-item">3番目</div> <div class="list-item">4番目</div> <div class="list-item">5番目</div> <div class="list-item">6番目</div> <div class="list-item">7番目</div> <div class="list-item">8番目</div> <div class="list-item">9番目</div> <div class="list-item">10番目</div> </div>
CSS
.list {
width: 800px;
margin: 0 auto;
}
.list-item {
float: left;
width: 180px;
margin: 10px;
background: #cccccc;
}
位置を1つだけ指定する
位置を1つだけ指定する場合、カッコ内に数値を記述します。
CSS
.list-item:nth-child(4) {
background: #E74C3C;
}
偶数・奇数番目を指定する
偶数・奇数を指定する場合、evenやoddを指定する方法と、nを使った指定方法があります。
カッコ内にevenを記述することで、偶数番目の指定になります。
CSS
.list-item:nth-child(even) {
background: #E74C3C;
}
oddで奇数番目の指定になります。
CSS
.list-item:nth-child(odd) {
background: #E74C3C;
}
nを使った数式でも記述できます。
偶数番目の場合は2nと指定します。
CSS
.list-item:nth-child(2n) {
background: #E74C3C;
}
nは0から始まるので注意ください。
偶数のデモページ2
奇数番目の場合は2n + 1と指定します。
CSS
.list-item:nth-child(2n + 1) {
background: #E74C3C;
}
特定の列を指定する
floatで配置している列の右端を指定する場合、今回のサンプルは4列なので4nと指定します。
CSS
.list-item:nth-child(4n) {
background: #E74C3C;
}
左端を指定する場合、4n + 1で指定できます。
CSS
.list-item:nth-child(4n + 1) {
background: #E74C3C;
}
左端のデモページ
同様に、左端から2番目の場合は4n + 2で指定できます。
2行目以降を指定する
4列表示の2行目以降なので、n + 5で5番目以降を指定します。
CSS
.list-item:nth-child(n + 5) {
background: #E74C3C;
}
1行目のみを指定する
先頭から何番目までかを指定したい場合、nにマイナスをかけて負の値にして、表示したい範囲の数値を足すようにします。
CSS
.list-item:nth-child(-n + 4) {
background: #E74C3C;
}
奇数行を指定する
奇数行を指定したい場合、2行分をひとつのセットとして考えます。
今回のサンプルの場合、4列なので8nとして、1~4を足すようにします。
CSS
.list-item:nth-child(8n + 1),
.list-item:nth-child(8n + 2),
.list-item:nth-child(8n + 3),
.list-item:nth-child(8n + 4) {
background: #E74C3C;
}
奇数行を指定するのデモページ
偶数行を指定したい場合は5~8を足すようにすればOKです。
【参考サイト】
コメントが承認されるまで時間がかかります。