liタグの好きな位置(○番目のみ)にCSSを適応させる方法

Programming

今回はHTMLのliタグで作成したリストの○番目の項目のみ色を変えるなど、好きな位置のみにCSSを効かせる実用的な方法を紹介します。

今回紹介する方法を使用すれば以下の様にリストで作ったメニューなどで、2の倍数番目のリストのみ色を変えるといったことが可能になります。

  • リスト1
  • リスト2
  • リスト3
  • リスト4
  • リスト5

HTML

<ul class="listdesign" style="padding: 0px;">
<li>リスト1</li>
<li>リスト2</li>
<li>リスト3</li>
<li>リスト4</li>
<li>リスト5</li>
</ul>

CSS

.listdesign  {
  position: relative;
  width: 70%;
  margin: 0 auto;
}
.listdesign li {
  line-height: 1.5;
  padding: 0.5em 0.5em 0.5em 1.7em;
  list-style-type: none;
  background: -webkit-linear-gradient(top, skyblue 0%, #5aade6 100%);
  background: linear-gradient(to bottom, skyblue 0%, #5aade6 100%);
  color: #fff;
}
.listdesign li:nth-child(2n){
  background: -webkit-linear-gradient(top, #0aa81a 0%, #75d17e 100%);
  background: linear-gradient(to bottom, #0aa81a 0%, #75d17e 100%);
}
.listdesign li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f138";
  position: absolute;
  left : 0.5em;
  color: white;
}
こんな時に使用
  • 任意の位置のリストの色を変えたい
  • スマホ時に○番目以降を非表示にしたい
  • 偶数番号のみにスタイルを適応させたい

liタグの好きな位置(○番目のみ)にCSSを適応させる方法

liタグの好きな位置にCSSを適応させるには以下の擬似クラスを使用します。

セレクタ:nth-child(xn+y)親要素のn番目
(xn+y)=値

nth-childを使うと任意の位置に対しての要素を指定できます。

nth-childは○番目のみ、一定間隔などの指定が可能です。1行間隔で背景色を変えたい場合や最後の2つのみ非表示にしたいなどの指定が可能です。

対象の要素に毎回クラス名を記述する必要がなくなりコードがスッキリして簡潔にまとめることができます。

(xn+y)の部分はセレクタ(親要素)に対して何番目にあたるのかを指定します。
例えば、親要素:nth-child(2)なら親要素内の2番目です。

実際の使い方は以下のとおりです。

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト

HTML

<ul class="testlist1">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist1 li:nth-child(3) {
color:red;
}

.testlist1が親要素で、li:nth-child(3)で子要素のliの3番目にのみスタイルが効く様になっています。

nth-childのいろんな使い方

nth-childの擬似クラスの値は数字以外にもいくつか使えるものがあります。
以下でそれぞれを解説します。

(2)親要素内の2番目の子要素に適応
(2n)親要素内の2の倍数番目の子要素に適応
(2n+1)親要素内の2の倍数+1(奇数)番目の子要素に適応
(n+3)親要素内の3番目以降の子要素に適応
(-n+3)親要素内の3番目以前の子要素に適応
even親要素内の偶数に適応
odd親要素内の奇数に適応

nth-child(3)
親要素内の3番目の子要素に適応

HTML

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト
<ul class="testlist1">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist1 li:nth-child(3) {
color:red;
}

nth-child(3n)
親要素内の3の倍数の子要素に適応

HTML

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト
<ul class="testlist2">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist2 li:nth-child(3) {
color:red;
}

nth-child(3n+1)
親要素内の3の倍数+1の子要素に適応

HTML

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト
<ul class="testlist3">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist3 li:nth-child(3n+1) {
color:red;
}

nth-child(n+3)
親要素内の3番目以降に適応

HTML

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト
<ul class="testlist4">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist4 li:nth-child(n+3) {
color:red;
}

nth-child(-n+3)
親要素内の3番目以前に適応

HTML

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト
<ul class="testlist5">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist5 li:nth-child(-n+3) {
color:red;
}

nth-child(even)
親要素内の偶数番目以前に適応

HTML

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト
<ul class="testlist6">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist6 li:nth-child(even) {
color:red;
}

nth-child(odd)
親要素内の奇数番目以前に適応

HTML

  • 1番上のリスト
  • 2番目のリスト
  • 3番目のリスト
  • 4番目のリスト
  • 5番目のリスト
  • 6番目のリスト
<ul class="testlist7">
<li>1番上のリスト</li>
<li>2番目のリスト</li>
<li>3番目のリスト</li>
<li>4番目のリスト</li>
<li>5番目のリスト</li>
<li>6番目のリスト</li>
</ul>

CSS

.testlist7 li:nth-child(odd) {
color:red;
}


nth-childは、レスポンシブサイトのPCとSPのレイアウトが切り替わる際に、スマホ時で気になる部分を、セレクタ:nth-child(n+7) {display:none;)などで非表示にするなどの使い方も出来ます。

以上がliタグの好きな位置(○番目のみ)にCSSを適応させる方法でした。

少しでも参考になったら幸いです。

この記事を書いた人
KEITO

AI × IT × WEB3|関東在住。本職はディレクター 。AIを活用してビジネス開拓。仕事の依頼はTwitterからお願いします。YouTube、Twitter、Instagramもお願い致します。

Programming
この記事を共有する
スポンサーリンク
スポンサーリンク
KT LIFE
スポンサーリンク

暗号資産投資するなら以下

Bybit

国内人気No.1!屈強なサーバー/信頼性抜群!トレーダー御用達の取引所。

通貨数338種以上
レバレッジ最大100倍
現物取引手数料Maker:0%〜0.1%
Taker:0.02%〜0.1%
先物取引手数料Maker:0%〜0.01%
Taker:0.03%〜0.06%
操作性スマホでも取引・入金できる
口座開設簡単に口座開設できる
日本語対応日本語対応あり・JPY利用可
特典下記から登録で初回ボーナスあり
登録リンクBybitへの登録は こちら
招待コード22295
レビュー記事レビュー記事は こちら
BigBoss&CRYPTOS

最大レバレッジ1111倍・日本円換金ルート

通貨数BigBoss:15種以上
CRYPTOS:15種以上
レバレッジ最大1111倍
スポット手数料Maker:0.02%〜0.18%
Taker:0.05〜0.20%
先物取引手数料
操作性スマホでも取引・入金できる
口座開設少し敷居が高い
日本語対応日本語対応あり
特典下記から登録で初回ボーナスあり
登録リンクBigBossへの登録は こちら
招待コード6690951
レビュー記事レビュー記事は こちら
Nexo

高APYでのステーキング&レンディング

通貨数60種以上
レバレッジ
スポット手数料Maker:0.04%〜0.20%
Taker:0.03%〜0.20%
先物取引手数料
操作性スマホでも取引・入金できる
口座開設簡単に口座開設できる
日本語対応日本語対応あり
特典下記から登録で初回ボーナスあり
登録リンクNexoへの登録は こちら
招待コード
レビュー記事レビュー記事は こちら

他おすすめ取引所はこちら

タイトルとURLをコピーしました