1

https://stackoverflow.com/a/12059220/1421561

私はDavidsコードが大好きですが、<IE7でサポートを提供するための最良の方法を知りたいです。私の最初のアイデアは、「子供がいる場合はクラスを追加する」というステートメントを使用することでした。次に、クラスは同様の方法で配置された背景画像にリンクします。

あなたの解決策は何でしょうか?

これがDavidsのフィドルです:http: //jsfiddle.net/w9xnv/2/

編集:<IE7でのこれのサポート:

.menu li > a:after { margin-left: 5px; content: '\25BA'; }
4

2 に答える 2

1

残念ながら、 IE7以前のセレクター:beforeとセレクターをサポートする方法がわかりません。:afterそれは単にサポートされていません。

多くのCSSには、古いIEを強制的に動作させるハックがあります。SelectivizrやCSS3Pieなどツールです

しかし、私はそのようなハックを知りません:after。申し訳ありません。

あなたはあなた自身のためにそれを研究することができます:

  • http://caniuse.com/#search=afterを使用して、ブラウザのサポートを確認してください。このサイトには、関連するリソースもリストされています。これには、関連するハッキングへのリンクが含まれていることがよくあります。(ただし、これについてはリストされていません)

  • https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills-古いブラウザに最新のブラウザ機能を実装するハックのかなり包括的なリスト。繰り返しますが、ここでのサポートの兆候はありません:after

私の心からのアドバイスは、あなたのサイトでIE7のサポートをやめることです。それをサポートする特別な必要性がない限り、誰も気付かない可能性があります。最近、IE7ユーザーはほとんどいません。その使用量はIE6よりもはるかに速く減少し、今日では両方とも世界のブラウザ使用量の1%未満にとどまっています。その半分のユーザー(とにかく正しく機能しないサイトを見るのにおそらくよく慣れている)を超える価値があるかどうかを自分で判断してください。

于 2012-10-20T20:11:13.023 に答える
0

このためのjQueryバックアップが必要だと誰も読んでいないようでした。IE7のCSSではこれがサポートされていないことはすでに理解していました。

とにかく、誰かが同じものを探しているなら、これは私の解決策です。

JS(jQuery):

<!--[if IE 7]>
    <script type="text/javascript"> 
         $(function () {
             $("#mainnavi li:has(ul)").addClass("ie7_dropdown_arrow");
         });    
    </script>   
<![endif]-->

CSS:

#mainnavi .ie7_dropdown_arrow {
    *background: url(../images/dropdown_arrow.png) no-repeat right 0px;
    *padding-right: 20px;
}

#mainnavi .ie7_dropdown_arrow:hover {
    *background: url(../images/dropdown_arrow.png) no-repeat right -15px;   
}
于 2012-10-21T14:13:54.603 に答える