バッドノウハウの具体例
IE6~11のCSSにおいて
IE6でだけプロパティ名の前にアンダースコアがあっても同一視される
IE6と7でだけプロパティ名の前にアスタリスクがあっても同一視される
IE6〜10で、値の最後に\9を付けても値に影響しない
IE6〜8で、:not(:target){ ~ }が解釈されない
IE6〜9で、@media all and (-ms-high-contrast: none) { ~ } が解釈されない
を組み合わせることでブラウザのバージョンによってCSSを変える
IEのバージョン毎のハックを試してみる | cly7796.net
code:css
.sample {
background: #000000;
background: #888888\9;
*background: #777777;
_background: #666666;
}
.sample:not(:target) {
background: #999999\9;
}
@media all and (-ms-high-contrast: none) {
.sample:not(:target) {
background: #bbbbbb;
background: #aaaaaa\9;
}
}
これで6〜11のそれぞれで振る舞いを変えられるはずだが古いIEで検証するのが面倒なので確認はしてない