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)


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

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


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

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!


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

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


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

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


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!



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 !!


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.


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.


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

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

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


3

Anda mungkin ingin mengintensifkan fokus daripada menyingkirkannya.

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

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

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

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

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

2

Sepertinya satu-satunya cara untuk mencapai ini adalah dengan menetapkan

browser.display.focus_ring_width = 0

di about: config berdasarkan per browser.


1

Ini berfungsi pada firefox v-27.0

 .buttonClassName:focus {
  outline:none;
}

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

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.


1

Yap jangan lewatkan ! Penting

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

! 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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.