今回も基礎知識の復習です。
今更ながら、IEチェックで発見したCSSプロパティと対応策を記述します。正直、めっちゃくちゃ簡単な対応です。CSS初心者の方のみ参考にして下さい。
縦型のナビゲーションメニューをCSSでレイアウトする際、ナビゲーションメニューの下に一本線を引いて、メニューっぽくするレイアウトです。
<ul> <li><a href="">▶ナビゲーション1</a></li> <li><a href="">▶ナビゲーション2</a></li> <li><a href="">▶ナビゲーション3</a></li> <li><a href="">▶ナビゲーション4</a></li> <li><a href="">▶ナビゲーション5</a></li> </ul>
ul{
width: 200px;
border:1px solid #001efb;
padding:20px;
}
li{
list-style: none;
border-bottom: 1px dashed #ff0000;
margin-bottom: 10px;
}
li:last-child{
border-bottom: none;
}
li a{
text-decoration: none;
}
一応、サンプル
IE8では、「last-child」を理解してくれないので、「ナビゲーション5」の「border-bottom」もキッチリ表示してくれます(・∀・)
なので、対応策は至って簡単!!「border-top」にして、「first-child」を記述して「ナビゲーション5」の「border-top」を非表示にすればいいんですね(・∀・)
ul{
width: 200px;
border:1px solid #001efb;
padding:20px;
}
li{
list-style: none;
border-top: 1px dashed #ff0000;
padding-top: 10px;
}
li:first-child{
border-top: none;
padding-top: 0px;
}
li a{
text-decoration: none;
}
はい、これで完了です。
一応、サンプル
【参考サイト様m(_ _)m】
Internet Explorer 8を最低限のブラウザとした場合に使ってはいけないCSSや注意を要するCSSのまとめ
微妙に、理解してくれたり、してくれなかったり・・・ホント気ままなやつですね。IEは。
今回の問題は「コレが無理なら、じゃぁコレで」とあっさり解決出来る内容でした。IE8を対応させるという名目で今回のようなレイアウトを組むなら、
「last-child」より「first-child」を使えばいいだけですからね(・∀・)
来年(2014年)の4月にXPのサービスサポートが終了すれば、IE8のユーザーも減ってくれるので、少しは悩みのタネも減ってくれるかなと淡い期待を持ちながら、本日はこの辺で。以上、@Kc_fujiでしたm(_ _)m