だから、MozillaとWebKitでは、appearance: none;
を使用して親要素を持つselect
ボックスの矢印を置き換えるまともなソリューションがあります。
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;
ただし機能しません。ここで何ができますか?
ブラウザのスニッフィングや条件付きコメント(Internet Explorer 10ではサポートされていません)を避け、代わりに、より標準的なアプローチを採用してください。この特定の問題では、 ::-ms-expand
疑似要素をターゲットにする必要があります。
select::-ms-expand {
display: none;
}
しかし、!幅を追加したい場合、次のようにすることはできません:
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;
}
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以上を確認する場合は、getInternetExplorerVersion
関数をコピーアンドペーストします このMicrosoftページから し、if
を次のように変更します。
if (getInternetExplorerVersion() >= 10) {
// whatever implementation you choose
}
IE 10および11のサイトで、Zurb Foundationを使用して作業している非表示のドロップダウン矢印に問題がありました。 _form.scssにある行がありました
select::-ms-expand {
display: none;
}
Iremovedそれと、すべてのブラウザでドロップダウン矢印が正常に表示されるようになりました。ここであなたの答えをジョナサンありがとう。これは、解決策をたくさん探した後、私を助けました。