2018.6.25
2020.1.7

IE8ではnth-childが非対応。どうしても使いたい場合の代替方法について

仕事で最近知りましたが、IE8ではCSSのnth-childやlast-childを使った要素の指定ができません。それくらい対応しているものだと思っていましたが、さすがはIE。侮れません。

以下は、nth-childをどうしても使いたい場合の設定方法になります。

コード

以下のコードでIE8でも「nth-child」と似たような要素の指定が可能です。

HTML


<ul>
    <li>A</li>
    <li>B</li>
    <li>C</li>
    <li>D</li>
</ul>

CSS


ul li:first-child+*+*{
    color:red;
}

IE8では「first-child」のみ使えるようで、「+*」で次の要素という意味になるため、指定したい要素分「+*」を追加して設定します。

ちなみに上記と同じ設定を「nth-child」で定義すると、以下のようになります。


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

実際の結果

「:first-child+*+*」で指定。

  • A
  • B
  • C
  • D

「:nth-child(3)」で指定。

  • A
  • B
  • C
  • D

個人開発でIE8を対応するようなことはほとんどありませんが、仕事ではまだまだ普通にあったりするので注意が必要です。

CSS】関連記事