ボタンのFirefoxの点線のアウトラインとリンクを削除する方法は?


507

これで、Firefoxにリンクの醜い点線のフォーカスアウトラインを表示しないようにすることができます

a:focus { 
    outline: none; 
}

しかし、<button>タグにこれをどのように行うこともできますか?私がこれをするとき:

button:focus { 
    outline: none; 
}

ボタンをクリックしても、ボタンのフォーカスの輪郭は点線のままです。

(そして、はい、これは使いやすさの問題であることを知っていますが、醜い灰色のドットの代わりに、デザインに適した独自のフォーカスヒントを提供したいと思います)


2
Firefox 4では、要素がクリックされたときにデフォルトでアウトラインを取得しなくなりましたが、キーボードフォーカスを受け取った場合のみです。
Geert

1
「醜い」とは、ウェブサイトのアクセシビリティをサポートすることを目的としています。キーボードのみのユーザーは、このアウトラインを削除するときに、Webサイトのどの部分がフォーカスされているかを判別できなくなりました。あなたのウェブサイトは完全にアクセス不可能であり、これは決してそうであってはなりません。アウトラインを削除しないでください。あなたのやり方でそれをより良いスタイルにしてください。
Markus Graf

回答:


787
button::-moz-focus-inner {
  border: 0;
}

15
ええ、それも私のために働きます!では、selectに対してそれをどのように行うことができますか?
2010

16
これは入力でも機能することに注意してください(例:input ::-moz-focus-inner {border:0;})
El Yobo

15
二重コロンの目的:(CSS3表記)evotech.net/blog/2007/05/...
sholsinger

21
bootstrap.cssがこの醜い点線のボタンを作成していたため、これは私には機能しませんでした。代わりに私は入れました:focus {outline:none !important;}
machineaddict

5
:focus {outline:none;} ::-moz-focus-inner {border:0;}はそれほど具体的ではありません
Ben

311

セレクターを定義する必要はありません。

:focus {outline:none;}
::-moz-focus-inner {border:0;}

ただし、これはW3Cのアクセシビリティのベストプラクティスに違反しています。概要は、キーボードを使ってナビゲートする人を助けるためにあります。

https://www.w3.org/TR/WCAG20-TECHS/F78.html#F78-examples


8
ありがとう、これは正解がうまくいかなかったときに私にとってはうまくいきました。間違ったセレクターを使用していたに違いありません。
irl_irl

これをありがとう、これはリンクやボタンからも削除しますか?
ネイサン

3
これは最高です!受け入れられた回答は、のためだけであり<button>、そうではありませ<a><input>
ロンファンデルハイデン

2
Ubuntu(GNU / Linux)でのMozilla Firefox 30に最適です。
e-info128 14

4
私はこのアクセシビリティを壊すことについて二番目に注意します。誰もがマウスを使用したり、見たり、見たりできるわけではないことを覚えておくことが重要です。つまり、リンク(および常識)に従って、アウトラインを非表示にすると、それが完了したときにa11yが壊れるだけです。without ... an author-supplied visual focus indicatorつまり、OPで述べたように、ユーザーエージェントスタイルを独自のスタイルに置き換えても問題ありません。理想的には、高コントラストである必要があります。
johncip

48

CSSを使用して点線のアウトラインを取り除く場合:

/*for FireFox*/
    input[type="submit"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner
    {   
        border : 0;
    } 
/*for IE8 and below */
    input[type="submit"]:focus, input[type="button"]:focus
    {     
        outline : none; 
    }

ゼロである数値の単位は必要ありません。0px単に置き換えることができます0
スラング

44

以下は、LINKSの場合に役立ちました。共有を考えました-誰かが興味を持った場合。

a, a:visited, a:focus, a:active, a:hover{
    outline:0 none !important;
}

乾杯!


12
a { outline: none; }リンクは単に十分なはずです。
2012年

3
ここでは!importantがトリックを行いましたが、他のソリューションにはそれがなく、機能しませんでした。私のために。
Cristiano Fontes

しかし、多くの場合、あなたが使用する必要があるa { outline: none; }!important- >a { outline: none !important; }
joryl

24
:focus, :active {
    outline: 0;
    border: 0;
}

私が使用していた選択オプションボックスの魅力のように機能しました
Muhammad Ahsan 2013年

1
これは十分に具体的ではなく、私は!importantまたはtarget onlyのa要素を使用したくなかったので、適切なオプションを見つけました body :focus, body :active { outline: 0; border: 0; } ::-moz-focus-inner { border: 0; }
Ivan Durst

10

[更新]このソリューションは動作しなくなりました。私のために働いた解決策はこれですhttps://stackoverflow.com/a/3844452/925560

正解としてマークされた回答は、Firefox 24.0では機能しませんでした。

ボタンとアンカータグ上のFirefoxの点線のアウトラインを削除するには、以下のコードを追加しました。

a:focus, a:active, 
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}

私はここで解決策を見つけました:http : //aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html


2
それはもう機能していません:/機能したソリューションは、この1つですstackoverflow.com/a/3844452/925560
Renato Carvalho

8

ここでほとんどの答えを試しましたが、どれも私にとってはうまくいきませんでした。Chromeのボタンの青い輪郭も取り除く必要があることに気付いたとき、別の解決策を見つけました。ChromeのCSSカスタムスタイルボタンから青い枠を削除

このコードは、Windows 7のFirefoxバージョン30で動作しました。おそらく他の誰かを助けるかもしれません:)

button:focus {outline:0 !important;}

同じことがここにあります。これはFF 38.0.5で機能する唯一のソリューションです
OlivierH

6

CSSを使用してFirefoxでこれらの点線のフォーカスを削除する方法はありません。

Webアプリケーションが動作するコンピューターにアクセスできる場合は、Firefoxのabout:configに移動しbrowser.display.focus_ring_widthて0に設定します。そうすると、Firefoxに点線の境界線がまったく表示されなくなります。

次のバグがこのトピックを説明しています:https : //bugzilla.mozilla.org/show_bug.cgi?id=74225


ありがとうございます。問題なく機能しましたが、これまでに多くのリンクを作成したため、この問題が発生することはありません。しかし、私は今混乱していますので、提示する前に理由は何ですか?
Durga Rao

これは答えが今完全に偽です。::-moz-focus-inner {border:0;}他のいくつかの回答で述べたようにを設定すると、完全に機能します。
Andy Mercer

@AndyMこの答えは機能します。他の回答で提示されるソリューションはCSS用であり、個々のサイトでのみ機能します。
Rahil Wazir 2014

7
質問はCSSでそれをどのように行うことができるかを尋ね、答えはそれは不可能であると述べています。それは誤りです。かもね。
アンディマーサー

6

これについては多くの解決策がウェブ上にありますが、その多くは機能しますが、これを強制するため、次のように使用すると、何も強調/焦点を合わせることができなくなります。

::-moz-focus-inner, :active, :focus {
    outline:none;
    border:0;
    -moz-outline-style: none;
}

これにより、セキュリティが少し追加され、契約が成立します。



5

このコードを使用して、Firefox 46およびChrome 49でテストされています。

input:focus, textarea:focus, button:focus {
    outline: none !important;
}

以前(白い点が見える)

白い点で入力

(白い点は見えない) ここに画像の説明を入力してください

少数の入力フィールド、ボタンなどにのみ適用する場合は、より具体的なコードを使用します。

input[type=text] {
  outline: none !important;
}

ハッピーコーディング!!


これ!importantは、Firefoxのスタイルシートを上書きするために必要でした。乾杯!
SamHH

5

このCSSを選択ボックスに追加するだけです

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000;
}

これは私にとってはうまくいきます。


4

フォーカスのアウトラインを削除することで、何をしているのかを本当に理解する必要があると思います。キーボードのナビゲーションやアクセシビリティを損なう可能性があるからです。

設計上の問題のために削除する必要がある場合は:focus、ボタンに状態を追加して、ボーダーをより明るい色に変更するなど、他の視覚的な手掛かりに置き換えます。

時々私はその迷惑なアウトラインを取り除く必要性を感じますが、私は常に代替フォーカスの視覚的な手がかりを準備します。

また、js関数を使用しないでくださいblur()::-moz-focus-inner疑似クラスを使用します。


4

ほとんどの場合!important、CSSコードにを追加しないと機能しません。

したがって、追加することを忘れないでください !important

a, a:active, a:focus{
    outline: none !important; /* Works in Firefox, Chrome, IE8 and above */
}


または他のコード:

button::-moz-focus-inner {
  border: 0 !important;
}

3
button::-moz-focus-inner { border: 0; }

ここでbutton、動作を無効にするCSSセレクターを指定できます。


3

あなたはそれを取り除くのではなく、焦点を強化したいかもしれません。

button::-moz-focus-inner {border: 2px solid transparent;}

button:focus::-moz-focus-inner {border-color: blue} 

2
@Nathanは少し遅れますが、フォーカス状態にスタイルがないと、キーボードの操作が混乱します。タブキーを押しているときに何に焦点が当てられているかを知ることができません。
Hkan 2015年

@Hkanええ、同意します。しかし、Firefoxのアウトラインは、特にカスタムフォーカスの境界線の周囲にある場合は醜いです。
ネイサン、

@ネイサン私はそれに完全に同意します。私たちがすべきことは、要素を同じ状態にするのではなく、フォーカス状態に独自のスタイルを提供することです。
Hkan 2015年

3

リンク、ボタン、入力要素から点線の輪郭を削除します。

a:focus, a:active,
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}

3

ボタンにボーダーがあり、ボーダー削除せずにFirefoxで点線のアウトラインを非表示にしたい場合(したがって、ボタンの幅が余分にある場合)、次のように使用できます。

.button::-moz-focus-inner {
    border-color: transparent;
}

3

以下のCSSコードはこれを削除するために機能します:

a:focus, a:active, 
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}



1

上記の多くのオプションを試した後、次のオプションのみがうまくいきました。

*:focus, *:visited, *:active, *:hover  { outline:0 !important;}
*::-moz-focus-inner {border:0;}

実際には(少なくともFirefoxの77に)、あなただけの必要があります button:focus { outline: none !important } か、私のようなあなたのような重要でないならば、この作品はまた、Firefoxのスタイルを上書きする:! :root button:focus { outline: none }
ジョナスSandstedt

1

Bootstrap 3とともに、このコードを使用しました。ルールの2番目のセットは、フォーカス/アクティブボタンに対してブートストラップが行うことを取り消すだけです。

button::-moz-focus-inner {
  border: 0;    /*removes dotted lines around buttons*/
}

.btn.active.focus, .btn.active:focus, .btn.focus, .btn.focus:active, .btn:active:focus, .btn:focus{
  outline:0;
}

カスタムcssファイルは、それを上書きするために、htmlコードのBootstrap cssファイルの後に来る必要があることに注意してください。


1

うん、お見逃しなく

button::-moz-focus-inner {
 border: 0 !important;
}

!重要はここでの回答の一部ではありません。アプリで必要な場合は、ボタンの周りのハイライトよりも解決する必要のある大きな問題があります。常に重要なことは避けてください。
モノクローム

0

button::-moz-focus-inner {border: 0px solid transparent;}CSSで試すことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.