nth-childやlast-childをIE8でどうしても使いたいときの代替手段。

nth-childやlast-childをIE8でどうしても使いたいときの代替手段。

ご無沙汰してます。mackyです。
最近、目覚めると14:00で、やってしまった…。今日はどんな言い訳をしようか…。と朝から真剣に考える「夢」をよく見ます。
「落し物を届けたのは先週使ったしな~!」と毎回言うのですが、なかなか言い訳の嘘くささもリアルで面白いです。
さて今日は、タイトルにもありますようにIE8で、nth-childやlast-childと同等の指定ができる方法について書こうと思います。

そもそも、こんなことが必要にならないようにコーディングを行うよ。と言われればそれまでなのですが、
自分の未熟さはわかっている。くそ!悔しい!でもてっとり早く何とかしたいの。という仲間たち、つづきを読んでやってください。

HTML

<h3>寝坊したときの言い訳リスト</h3>
<ul>
<li>朝から腹痛</li>
<li>道に人が倒れていた</li>
<li>愛犬が逝く</li>
<li>(無敵の)私用</li>
<li>「寝坊です。」</li>
</ul>

こんなリストがあったとして、最後の「寝坊です。」にだけ背景色を与えてみようと思います。

CSS

ul {
	background: #DFDFDF;
}

li {
	margin-bottom: 10px;
	padding: 3px;
	font-size: 12px;
	color: #666666;
	font-weight: bold;
}

li:last-child {
	background-color: #FA498F;
	color: #FFFFFF;
}

もしくは、

li:nth-child(5) {
	background-color: #FA498F;
	color: #FFFFFF;
}

でこうなります。

150226_fujimori_01.jpg

が、これではIE8では反映されないので。。。

ul > *:first-child + * + * + * + * {
	background-color: #FA498F;
	color: #FFFFFF;
}

とします。
「+ *」の数で調整するわけですね。 くれぐれも、li > *:first-child + * + * + * + * としないように。

まとめ

どちらかというと、n番目としてあつかうといったほうが正しいカモしれませんね。last-childだとマークアップだけの修正ですみますが、この書き方だとリストが追加されるたびにCSSの修正も発生しますので。
ですが、知ってて損はないかと。是非、お試しください。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ