Chromeおよび他のブラウザでは、ドロップダウンが表示されますfine:
ただし、Firefoxには不要な点線行があります:
これらのCSSステートメントを使用して、buttonsおよびinput要素の不要なFirefoxの点線を正常に削除しました。
button::-moz-focus-inner { border: 0; }
input::-moz-focus-inner { border: 0; }
したがって、これらはselect/option要素で機能すると思いましたが、機能しません。
select::-moz-focus-inner { border: 0; }
option::-moz-focus-inner { border: 0; }
このドロップダウンの点線を削除して、Chromeおよび他のブラウザ)のように表示するにはどうすればよいですか?
これらも機能しません:
select::-moz-focus-inner { border: 0; outline: 0 }
option::-moz-focus-inner { border: 0; outline: 0 }
これらも:
select { outline: 0; }
option { outline: 0; }
これらも:
select { outline: none; }
option { outline: none; }
James Broadの答えはほぼ完璧ですが、オプション項目の「影のみ」のテキストは見苦しいようです。これは私にとって完璧に機能するものです:
select:-moz-focusring {
color:transparent;
text-shadow:0 0 0 #000; /* your normal text color here */
}
select:-moz-focusring * {
color:#000; /* your normal text color here */
text-shadow:none;
}
そのための複合ハックは次のとおりです。
select:focus {
outline: 1px solid white;
outline-offset: -2px;
}
select ~ input[type=button] {
-moz-appearance: menulist-button;
margin-left: -19px;
width: 18px;
height: 18px;
z-index: 10;
}
次に、各選択の後にtabindex = 0の入力を追加し、フォーカス「委任」のコードを追加します。
$("select ~ input[type=button]").addEvent('focus', function(){
this.getPrevious().focus();
});
https://stackoverflow.com/a/18853002/728855 にある解決策は完全に機能しているようです。
要するに:
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
}
ここで、#000はテキストの色です。
以下のコードのように、required
で使用する場合:
<select required="true">
<option value="" selected="true" disabled="true" hidden="true">Select a Option</option>
<option value="">Option</option>
</select>
以下のように、select:required:invalid
に同じパラメータを設定する必要があります。
select {
&:required {
&:invalid {
color: transparent;
text-shadow: 0 0 0 rgba(0, 0, 0, .4);
}
}
&:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 rgba(0, 0, 0, .4);
}
}