select要素で選択されたアイテムを囲む点線を削除することは可能ですか?
outline
CSSでプロパティを追加しようとしましたが、少なくともFFでは機能しませんでした。
<style>
select { outline:none; }
</style>
アップデート
先に進んで概要を削除する前に、こちらをお読みください。
http://www.outlinenone.com/
select要素で選択されたアイテムを囲む点線を削除することは可能ですか?
outline
CSSでプロパティを追加しようとしましたが、少なくともFFでは機能しませんでした。
<style>
select { outline:none; }
</style>
アップデート
先に進んで概要を削除する前に、こちらをお読みください。
http://www.outlinenone.com/
回答:
私は解決策を見つけましたが、それはすべてのハックの母であり、うまくいけば、他のより堅牢な解決策の出発点として役立つでしょう。(私の意見では大きすぎる)欠点は、Modernizrなどのライブラリ(テストされていない、単なる理論)を使用しない限り、(IE 9)をtext-shadow
サポートしていないがサポートしているブラウザーrgba
はテキストをレンダリングしないことです。
Firefoxはテキストの色を使用して、点線の枠の色を決定します。もしそうなら...
select {
color: rgba(0,0,0,0);
}
Firefoxは点線のボーダーを透明にします。もちろん、テキストも透明になります!したがって、どういうわけかテキストを表示する必要があります。text-shadow
救助に来る:
select {
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
オフセットもブラーもないテキストシャドウを配置して、テキストを置き換えます。もちろん古いブラウザはこれを何も理解しないので、色のフォールバックを提供する必要があります:
select {
color: #000;
color: rgba(0,0,0,0);
text-shadow: 0 0 0 #000;
}
これがIE9の登場rgba
です。テキストシャドウはサポートされていますがサポートされていないため、明らかに空の選択ボックスが表示されます。text-shadow
検出付きのModernizrのバージョンを入手して実行してください...
.no-textshadow select {
color: #000;
}
楽しい。
@-moz-document url-prefix() { ::-moz-focus-inner {border: none} select:-moz-focusring { color: transparent; text-shadow: 0px 0px 0px #000; } }
まあ、Duopixelの答えは明白に完璧です。さらに一歩進めば、それを完全なものにすることができます。
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
}
これで、Firefoxにのみ有効で、選択したオプションの周りの醜い点線のアウトラインはなくなりました。
all
トランジション内で使用することは、その場でガトリングガンを発射するようなものです。
以下は、Firefoxの選択ボックスのスタイルに関する問題を修正するためのソリューションのコラボレーションです。このCSSセレクターを通常のCSSリセットの一部として使用します。
クラスは質問ごとにアウトラインを削除しますが、背景画像も削除します(通常、カスタムのドロップダウン矢印を使用しており、Firefoxesシステムのドロップダウン矢印は現在削除できません)。ドロップダウン画像以外の背景画像を使用している場合は、単に線を削除しますbackground-image: none !important;
@-moz-document url-prefix() {
select, select:-moz-focusring, select::-moz-focus-inner {
color: transparent !important;
text-shadow: 0 0 0 #000 !important;
background-image: none !important;
border:0;
}
}
-moz-appearance
をに設定することで、SELECTバックグラウンドで使用されているFirefoxの矢印を削除できますnone
。
select::-moz-focus-inner
セレクターがないため、効果が低くなります。これが私のoneを取得する理由です。
select:-moz-focusring
一緒にcolor: transparent
とtext-shadow: 0 0 0 #000
FirefoxのV63での焦点に迷惑な境界線を削除
これはすべてのFirefoxバージョンをターゲットにします
@-moz-document url-prefix() {
select {
color: transparent !important;
text-shadow: 0 0 0 #000 !important;
}
}
同じスタイルシートを使用するサイト内の他のページにアウトラインを表示する予定がある場合は、!重要を削除することをお勧めします。
一般に、フォームコントロールをその精度でスタイル設定することはできません。すべてのコントロールで賢明な範囲のプロパティをサポートしているブラウザはありません。画像やその他のHTML要素でフォームコントロールを「偽造」し、コードで元の機能をエミュレートする膨大なJavaScriptライブラリが存在するのは、このためです。
http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/
...
<select onchange="this.blur();">
これを使用すると、境界線はリストから項目を選択するまで残ります。
Firefoxのすべての選択可能なタグからアウトライン/点線の枠を削除します。
次のコード行をスタイルシートに配置します。
*:focus{outline:none !important;}
CSSの選択にborder-style:noneを追加します。
select {
border-style: none; }
input[type='range']::-moz-focus-outer {
border: 0;
outline: none !important;
}
100%働く
これにより、select
要素とアウトラインからフォーカスが削除されます。
$("select").click(function(){
$(this).blur();
});
ただし、これには他のブラウザの欠点がないわけではありません。ユーザーが使用しているブラウザを確認する必要があります。
if (FIREFOX) {
//implement the code
}