Bagaimana cara menghapus garis putus-putus Firefox pada BUTTONS serta tautan?

507

Saya dapat membuat Firefox tidak menampilkan garis putus-putus fokus yang buruk pada tautan dengan ini:

a:focus { 
    outline: none; 
}

Tetapi bagaimana saya bisa melakukan ini untuk <button>tag juga? Ketika saya melakukan ini:

button:focus { 
    outline: none; 
}

tombol masih memiliki garis fokus bertitik ketika saya mengkliknya.

(dan ya, saya tahu ini adalah masalah kegunaan, tapi saya ingin memberikan petunjuk fokus saya sendiri yang sesuai dengan desain dan bukan titik abu-abu jelek)

Edward Tanguay
sumber
2
Sepertinya di Firefox 4, elemen tidak lagi mendapatkan garis besar secara default saat diklik, tetapi hanya saat menerima fokus keyboard.
Geert
1
Apa yang Anda sebut "jelek" dimaksudkan untuk mendukung aksesibilitas situs web. Pengguna keyboard saja tidak dapat lagi menentukan bagian mana dari situs web yang menjadi fokus saat menghapus garis besar ini. Situs web Anda akan sepenuhnya tidak dapat diakses dan ini seharusnya tidak terjadi. Jangan pernah menghapus garis besarnya. Gaya yang lebih baik di jalan Anda.
Markus Graf

Jawaban:

787
button::-moz-focus-inner {
  border: 0;
}
Josh Crozier
sumber
15
Ya itu bekerja untuk saya juga! Sekarang bagaimana itu bisa dilakukan untuk seleksi?
7wp
16
Perhatikan bahwa ini juga berfungsi untuk input (mis. Input :: - moz-focus-inner {border: 0;})
El Yobo
15
Tujuan dari usus besar ganda: (notasi CSS3) evotech.net/blog/2007/05/…
sholsinger
21
Yang ini tidak bekerja untuk saya, karena bootstrap.css membuat tombol bertitik jelek ini. Sebaliknya saya telah memasukkan:focus {outline:none !important;}
machineaddict
5
: focus {outline: none;} :: - moz-focus-inner {border: 0;} akan kurang spesifik
Ben
311

Tidak perlu menentukan pemilih.

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

Namun, ini melanggar praktik terbaik aksesibilitas dari W3C. Garis besarnya ada untuk membantu mereka yang menavigasi dengan keyboard.

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

Anderson Custódio
sumber
8
Terima kasih, ini bekerja untuk saya ketika jawaban yang benar tidak. Saya pasti menggunakan pemilih yang salah.
irl_irl
Terima kasih untuk ini, apakah ini akan menghapusnya di tautan dan tombol juga?
Nathan
3
Yang ini yang terbaik! Jawaban yang diterima hanya untuk <button>, tidak <a>juga<input>
Ron van der Heijden
2
Sempurna di Mozilla Firefox 30 di bawah Ubuntu (GNU / Linux).
e-info128
4
Saya akan kedua catatan tentang aksesibilitas melanggar ini. Penting untuk diingat bahwa tidak semua orang dapat menggunakan mouse, atau melihat, atau melihat dengan baik. Yang mengatakan, per tautan (dan akal sehat) menyembunyikan garis besar hanya memecah ketika sudah selesai without ... an author-supplied visual focus indicator- dengan kata lain, tidak apa-apa untuk mengganti gaya agen-pengguna dengan gaya Anda sendiri, seperti yang disebutkan OP. Idealnya itu harus kontras tinggi.
johncip
48

Jika Anda lebih suka menggunakan CSS untuk menyingkirkan garis bertitik:

/*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; 
    }
chinkchink
sumber
Anda tidak perlu unit pada angka yang nol. 0pxdapat diganti dengan hanya0
gaul
44

Di bawah ini berfungsi untuk saya dalam kasus LINK, berpikir untuk berbagi - jika seseorang tertarik.

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

Bersulang!

foxybagga
sumber
12
Cukup a { outline: none; }harus cukup untuk tautan.
berikan
3
di sini! penting lakukan triknya, solusi lain tidak memiliki itu dan tidak berfungsi. untuk saya.
Cristiano Fontes
Tetapi seringkali Anda harus menggunakan a { outline: none; }dengan !important->a { outline: none !important; }
joryl
24
:focus, :active {
    outline: 0;
    border: 0;
}
blizzyx
sumber
Bekerja seperti pesona untuk kotak pilihan yang saya gunakan
Muhammad Ahsan
1
Ini tidak cukup spesifik, dan saya tidak ingin menggunakan aelemen penting atau target saja , jadi saya menemukan pilihan yang baik body :focus, body :active { outline: 0; border: 0; } ::-moz-focus-inner { border: 0; }
Ivan Durst
10

[Perbarui] Solusi ini tidak berfungsi lagi. Solusi yang berhasil bagi saya adalah yang ini https://stackoverflow.com/a/3844452/925560

Jawaban yang ditandai benar tidak berfungsi dengan Firefox 24.0.

Untuk menghapus garis putus-putus Firefox pada tombol dan jangkar, saya menambahkan kode di bawah ini:

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;
}

Saya menemukan solusinya di sini: http://aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html

Renato Carvalho
sumber
2
Ini tidak berfungsi lagi: / Solusi yang berhasil adalah yang ini stackoverflow.com/a/3844452/925560
Renato Carvalho
8

Sudah mencoba sebagian besar jawaban di sini, tetapi tidak ada yang bekerja untuk saya. Ketika saya menyadari bahwa saya harus menyingkirkan garis biru pada tombol di Chrome juga, saya menemukan solusi lain. Hapus batas biru dari tombol bergaya css di Chrome

Kode ini berfungsi untuk saya di Firefox versi 30 di Windows 7. Mungkin ini bisa membantu orang lain di luar sana :)

button:focus {outline:0 !important;}
Vartox
sumber
Hal yang sama di sini, ini adalah satu-satunya solusi yang bekerja pada FF 38.0.5
OlivierH
6

Tidak ada cara untuk menghapus fokus bertitik ini di Firefox menggunakan CSS.

Jika Anda memiliki akses ke komputer tempat aplikasi web Anda bekerja, buka about: config di Firefox dan atur browser.display.focus_ring_widthke 0. Kemudian Firefox tidak akan menampilkan batas bertitik sama sekali.

Bug berikut ini menjelaskan topik: https://bugzilla.mozilla.org/show_bug.cgi?id=74225

Vitaly Sharovatov
sumber
Terima kasih itu berfungsi dengan baik, tetapi saya telah membuat banyak tautan sebelumnya saya tidak pernah mendapatkan masalah ini sampai sekarang. tapi sekarang saya bingung jadi apa alasannya sebelumnya?
Durga Rao
Ini adalah jawaban yang sekarang sepenuhnya salah. Mengatur ::-moz-focus-inner {border:0;}seperti yang disebutkan dalam beberapa jawaban lain berfungsi dengan baik.
Andy Mercer
@AndyM Jawaban ini tidak berfungsi. Solusi yang disajikan dalam jawaban lain adalah untuk CSS dan hanya berfungsi untuk masing-masing situs.
Rahil Wazir
7
Pertanyaannya menanyakan bagaimana hal itu dapat dilakukan dengan CSS, dan jawabannya mengatakan itu tidak mungkin. Itu salah. Itu bisa saja.
Andy Mercer
6

Ada banyak solusi yang ditemukan di web untuk ini, banyak di antaranya berfungsi, tetapi untuk memaksakan ini, sehingga sama sekali tidak ada yang dapat menyorot / fokus setelah menggunakan yang berikut ini:

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

Ini hanya menambahkan sedikit keamanan ekstra & menyegel kesepakatan!

Shannon Hochkins
sumber
6

Ini akan mendapatkan kontrol rentang:

:focus {
    outline:none;
}
::-moz-focus-inner {
    border:0;
}
input[type=range]::-moz-focus-outer {
    border: 0;
}

Dari: Hapus garis putus-putus dari elemen input rentang di Firefox

bob
sumber
Tidak ada solusi lain yang berfungsi untuk range- terima kasih :)
Kamil Kiełczewski
Sempurna, Berfungsi di Firefox 72 di linux juga!
asdjfiasd
5

Diuji pada Firefox 46 dan Chrome 49 menggunakan kode ini.

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

Sebelum (titik-titik putih terlihat)

masukan dengan titik putih

Setelah (Titik putih tidak terlihat) masukkan deskripsi gambar di sini

Jika Anda ingin menerapkan hanya pada beberapa bidang input, tombol, dll. Gunakan kode yang lebih spesifik.

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

Selamat Coding !!

Madan Sapkota
sumber
Itu !importantdiperlukan bagi saya untuk mengganti stylesheet Firefox. Bersulang!
SamHH
5

Cukup tambahkan css ini untuk kotak pilih

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

Ini bekerja dengan baik untuk saya.

Abhay Singh
sumber
4

Saya pikir Anda harus benar-benar tahu apa yang Anda lakukan dengan menghapus garis fokus, karena dapat mengacaukannya untuk navigasi dan aksesibilitas keyboard.

Jika Anda perlu mengeluarkannya karena masalah desain, tambahkan :focusstatus ke tombol yang menggantikan ini dengan beberapa isyarat visual lainnya, seperti, mengubah perbatasan menjadi warna yang lebih cerah atau sesuatu seperti itu.

Kadang-kadang saya merasa perlu untuk mengambil garis besar yang menjengkelkan itu, tetapi saya selalu menyiapkan isyarat visual fokus alternatif.

Dan tidak pernah menggunakan blur()fungsi js. Gunakan ::-moz-focus-innerkelas pseudo.

Garis datar
sumber
4

Dalam kebanyakan kasus tanpa menambahkan !importantkode CSS, itu tidak akan berfungsi.

Jadi, jangan lupa tambahkan !important

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


Atau kode lain:

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

Di mana buttonada pemilih CSS apa pun yang Anda inginkan untuk menonaktifkan perilaku tersebut.

goyah
sumber
3

Anda mungkin ingin mengintensifkan fokus daripada menyingkirkannya.

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

button:focus::-moz-focus-inner {border-color: blue} 
Jason Plank
sumber
2
@Nathan sedikit terlambat tetapi, tidak memiliki gaya dalam keadaan fokus akan mengacaukan pengalaman keyboard. Anda tidak akan dapat mengetahui apa yang difokuskan ketika Anda menekan tombol tab .
Hkan
@Hkan Ya, saya setuju. Tetapi garis besar Firefox jelek terutama ketika berada di sekitar perbatasan fokus kustom.
Nathan
@ Nathan Saya sepenuhnya setuju dengan itu. Apa yang harus kita lakukan adalah menyediakan gaya kita sendiri untuk keadaan fokus daripada membuat elemen menjadi sama pada keadaan tersebut.
Hkan
3

Hapus garis putus-putus dari tautan, tombol, dan elemen input.

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;
}
Fizer Khan
sumber
3

Jika Anda memiliki perbatasan pada tombol dan ingin menyembunyikan garis putus-putus di Firefox tanpa menghapus perbatasan (dan karenanya lebar tambahan pada tombol) Anda dapat menggunakan:

.button::-moz-focus-inner {
    border-color: transparent;
}
Dave Everitt
sumber
3

Kode CSS di bawah berfungsi untuk menghapus ini:

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;
}
kurumkan
sumber
2

Sepertinya satu-satunya cara untuk mencapai ini adalah dengan menetapkan

browser.display.focus_ring_width = 0

di about: config berdasarkan per browser.

AlexWilson
sumber
1

Ini berfungsi pada firefox v-27.0

 .buttonClassName:focus {
  outline:none;
}
star18bit
sumber
1

Setelah mencoba banyak pilihan di atas, hanya yang berikut ini yang berfungsi untuk saya.

*:focus, *:visited, *:active, *:hover  { outline:0 !important;}
*::-moz-focus-inner {border:0;}
Waqas Bukhary
sumber
Sebenarnya (setidaknya di Firefox 77), Anda hanya perlu: button:focus { outline: none !important } Atau jika Anda suka saya tidak suka! Penting, ini juga berfungsi untuk mengganti gaya Firefox: :root button:focus { outline: none }
Jonas Sandstedt
1

Bersama dengan Bootstrap 3 saya menggunakan kode ini. Rangkaian aturan kedua hanya membatalkan apa yang dilakukan bootstrap untuk tombol fokus / aktif:

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;
}

Perhatikan bahwa file css khusus Anda harus muncul setelah file Bootstrap css dalam kode html Anda untuk menimpanya.

Ehsan88
sumber
1

Yap jangan lewatkan ! Penting

button::-moz-focus-inner {
 border: 0 !important;
}
Riwaj Chalise
sumber
! Penting bukan bagian dari jawaban di sini, dan jika aplikasi Anda membutuhkannya, maka Anda memiliki masalah yang lebih besar untuk diselesaikan daripada sorotan di sekitar tombol Anda. Berusaha keras untuk menghindari! Penting.
monokrom
0

Anda dapat mencoba button::-moz-focus-inner {border: 0px solid transparent;}di CSS Anda.

biasa
sumber