75

したがって、MozillaとWebKitを使用すると、親要素をselect使用して持つボックスの矢印を置き換える、半ばまともなソリューションがあります。appearance: none;

IEでは、ほとんどの場合、この機能を無効にしました。IE10の場合、条件付きコメントが実際には機能しないため、実際に無効にすることはできません。

これが私のマークアップです:

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)]>    <html class="ie10plus"> <![endif]-->
<!--[if !(IE)]><!--> <html> <!--<![endif]-->

クラスie10plusは実際にはマークアップへの道を作りません。

また、IEの矢印を置き換える正当な方法があるかもしれないと感じています。私は実際に問題を解決することに反対していません。appearance: none;ただし、機能しません。だから私はここで何ができますか?

4

5 に答える 5

298

ブラウザスニッフィングや条件付きコメント(Internet Explorer 10ではサポートされていません)を避け、代わりに、より標準的なアプローチを採用してください。この特定の問題では、::-ms-expand疑似要素をターゲットにする必要があります。

select::-ms-expand {
    display: none;
}
于 2013-04-10T18:38:46.100 に答える
2

しかし!、幅を追加したい場合、次のように追加することはできません。

display:none

それで

select::-ms-expand {
 /* IE 8 */
 -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
 /* IE 5-7 */
 filter: alpha(opacity=0);
 /* Good browsers :) */
 opacity:0;
}
于 2014-05-21T07:52:36.900 に答える
1

Internet Explorer 10は条件付きコメントをサポートしていないため、別のことを行う必要があります。1つの解決策は、JavaScriptを使用してユーザーエージェントをスニッフィングし、自分でクラスを追加することです。

<script>
if (navigator.userAgent.indexOf("MSIE 10.0") !== -1) {
    document.documentElement.className += " ie10";
}
</script>

<head>スタイルが設定されていないコンテンツのフラッシュが発生しないように、おそらくこれを追加する必要がありますが、それは問題ではない可能性があります。

また、jQueryを使用している場合は、次のようなことを行うことをお勧めします。

if (navigator.userAgent.indexOf("MSIE 10.0") !== -1) {
    $("html").addClass("ie10");
}

IE10以降を確認する場合は、このMicrosoftページからgetInternetExplorerVersion関数をコピーして貼り付けてから、を次のように変更します。if

if (getInternetExplorerVersion() >= 10) {
    // whatever implementation you choose
}
于 2013-03-12T02:05:00.803 に答える
0

ZurbFoundationを使用しているIE10および11のサイトで、非表示のドロップダウン矢印に問題がありました。_form.scssに次のような行がありました

select::-ms-expand {
    display: none;
}

それを削除すると、ドロップダウン矢印がすべてのブラウザで正常に表示され始めました。ここであなたの答えをありがとうジョナサン。これは、解決策をたくさん探した後、私を助けました。

于 2014-05-14T16:33:34.000 に答える
-1

何を達成しようとしているのかまだわかりませんが、これにより、ie10のクラスが検出されて追加されます。
<!--[if !IE]><!--<script> if (/*@cc_on!@*/false) { document.documentElement.className+=' ie10plus'; } </script>!--<![endif]-->

于 2013-03-12T04:15:32.837 に答える