tombol bootstrap menunjukkan garis biru ketika diklik


137

Saya menambahkan ini tetapi tetap garis biru muncul ketika tombol diklik.

.btn:focus {
  outline: none;
}

bagaimana cara menghapus benda jelek itu?


cobalah untuk mengatur :activetombol. Tambahan: Gunakan Inspektur di browser Anda untuk menemukan Masalahnya.
Adrian Preuss

1
Bisakah Anda memposting sedikit lebih banyak kode atau demo jsfiddle sehingga kami dapat membantu Anda
Richa

Tidak yakin tentang tombol tetapi bootstrap menambahkan bayangan kotak ke bidang masukan yang dapat dihapus dengan bayangan kotak: tidak ada;
davidcondrey

3
FWIW, styling fokus penting untuk navigasi keyboard.
Nate Whittaker

Sebuah gambar akan berguna di sini
Sup Ayam

Jawaban:


203

Mungkin properti Anda semakin ditimpa. Coba lampirkan !importantkode Anda bersama dengan: aktif.

.btn:focus,.btn:active {
   outline: none !important;
   box-shadow: none;
}

Juga tambahkan bayangan kotak karena jika tidak Anda masih akan melihat tombol bayangan di sekitar.

Meskipun ini bukan praktik yang baik untuk digunakan! Penting Saya sarankan Anda menggunakan kelas yang lebih spesifik dan kemudian mencoba menerapkan css dengan menggunakan! Penting ...


@ Janak Tapi mengapa perlu ketika menimpa: aktif?

Saya juga dapat menambahkan bahwa ketika nuking dengan! Penting, pseudo-class tidak diperlukan

7
Jika Anda menggunakan Bootstrap 4, tambahkan box-shadow: none(dan jangan lupa awalan -webkit-box-shadow: none) untuk jawaban ini. Perhatikan juga bahwa Bootstrap 4 sudah ada .btn:focus { outline: none }di kelas btn.
Cooleronie

1
Isyarat visual sangat penting ketika tidak menavigasi dengan mouse. Jika Anda menghapus garis besar, Anda harus menambahkan umpan balik visual lainnya, atau Anda akan melumpuhkan situs Anda.
Josef Engelfrost

52

Dalam versi terbaru Bootstrap, saya menemukan menghapus garis itu sendiri tidak berfungsi. Dan saya harus menambahkan ini karena ada juga bayangan kotak:

.btn:focus, .btn:active {
  outline: none !important;
  box-shadow: none !important;
}

1
Inilah yang membantu saya.
Vahx

Jika Anda ingin memastikan Anda menekan semua tombol Anda, cukup gunakan tombol {outline: none! Important; bayangan kotak: tidak ada! Penting; }
Drew

52

Ada kelas boostrap bawaan shadow-noneuntuk menonaktifkan box-shadow(tidak outline) ( https://getbootstrap.com/docs/4.1/utilities/shadows/ ). Ini menghapus bayangan tombol:

<button class='btn btn-primary shadow-none'>Example button</button>

Terima kasih banyak.
Nikolay Tsenkov

3
ini adalah jawaban terbaik
jmrueda

1
Ini ADALAH solusi yang Anda cari. Ini solusinya, maju terus, terus maju. Terima kasih ini menyelesaikannya untuk Firefox dengan Bootstrap 4.
swudev

Posting ini tentang menghapus garis besar, bukan bayangan. Sedihnya, komentar ini menyesatkan.
Clay Records

Ya, itu adalah jawaban terbaik tetapi mengapa itu tidak diterima pada tombol tanda Siaga Singkirkan
Nawaraj

19

Coba Kode Di Bawah Ini

.button:active, 
 button:active,
.button:focus, 
 button:focus,
.button:hover, 
 button:hover{
    border:none !important;
    outline:none !important;
}

4
Saya hanya perlu bagian ini untuk menghapus garis luar di chrome: button: focus {outline: none;}
TTT

13

Ini terjadi pada saya di Chrome (walaupun tidak di Firefox). Saya telah menemukan bahwa outlineproperti sedang diset oleh Bootstrap sebagai outline: 5px auto -webkit-focus-ring-color;. Dipecahkan dengan mengganti outlineproperti nanti di CSS khusus saya sebagai berikut:

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

12

ini akan menyelesaikan tombol dengan teks, tombol hanya ikon atau tombol adalah tautan:

 <!--1. button with a text -->
 <button type="button" class="btn btn-success" id="newWord">Save</button>

 <!--2. button only with a close icon -->
 <button type="button" class="close"></button>

 <!--3. button is a link -->
 <a class="btn btn-success btn-xs" href="#">Save</a>



button,
button:active,
button:focus, 
button:hover,
.btn,
.btn:active, 
.btn:focus, 
.btn:hover{   
    outline:none !important;
}

jika Anda menambahkan border:none !important;

{
    border:none !important;
    outline:none !important;
}

maka ukuran tombol akan menjadi lebih kecil saat diklik.



7

Di Bootstrap 4 mereka gunakan box-shadow: 0 0 0 0px rgba(0,123,255,0);pada: fokus, dan saya memecahkan masalah saya dengan

a.active.focus,
a.active:focus,
a.focus,
a:active.focus,
a:active:focus,
a:focus,
button.active.focus,
button.active:focus,
button.focus,
button:active.focus,
button:active:focus,
button:focus,
.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn:active:focus,
.btn:focus {
    outline: 0;
    outline-color: transparent;
    outline-width: 0;
    outline-style: none;
    box-shadow: 0 0 0 0 rgba(0,123,255,0);
}

4

Bahkan setelah menghapus garis besar dari tombol dengan menetapkan nilainya ke 0, Masih ada perilaku lucu pada tombol ketika diklik, ukurannya sedikit menyusut. Jadi saya datang dengan solusi optimal:

.btn:focus {
   outline: none !important;
   box-shadow: 0 0 0 0;
}

Semoga ini membantu...


3

Anda perlu menggunakan sarang yang tepat dan kemudian menerapkan gaya padanya.

  • Klik kanan pada tombol dan cari kelas yang tepat untuk menggunakannya (Periksa elemen menggunakan pembakar untuk firefox), (periksa elemen untuk chrome).

  • Tambahkan gaya ke seluruh kelas. Hanya kemudian itu akan berhasil


3

Saya menemukan ini sangat berguna dalam kasus saya setelah klik tombol.

$('#buttonId').blur();

3

Saya memilih untuk hanya menghapus lebar perbatasan :focus. Ini menghilangkan ruang jelek antara garis besar dan sudut bulat tombol. Untuk beberapa alasan masalah ini hanya terjadi pada elemen tombol aktual dan bukan <a class="btn">elemen.

button.btn:focus {
  border-width: 0;
}

3

Ini dapat membantu jika seseorang masih memiliki pertanyaan ini yang belum terselesaikan.

(function() {
  $('button').on('click', function() {
    $("#action").html("button was clicked");
    console.log("the button was clicked");
  });
})();
.btn-clear {
  background-color: transparent !important;
  border-style: none !important;
  cursor: pointer;
}

.btn-clear:active,
.btn-clear:focus {
  outline-style: none !important;
  outline-color: transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- this button has default style -->
<button>Action</button>
<!-- this button is clear of style -->
<button class="btn-clear">Action</button>

<label id="action"></label>


3

Inilah solusi Boostrap 4 saya untuk menghapus garis tombol

/*
* Boostrap 4
* Remove blue outline from button
*/

.btn:focus,
.btn:active {
  box-shadow: none;
}

3

Saya baru saja mengalami masalah yang sama dan kode berikut berfungsi untuk saya:

.btn:active, .btn:focus, .btn:active:focus, .btn.active:focus {
    outline: none !important;
}

.btn {
  margin:32px;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->




<button type="button" class="btn btn-default">Button</button>

Berharap itu akan membantu!


garis besar! lakukan !! thud
Adam Cox

3

Sebenarnya dalam bootstrap didefinisikan semua variabel untuk semua kasus. Dalam kasus Anda, Anda hanya perlu mengganti variabel default '$ input-btn-focus-box-shadow' dari file '_variables.scss'. Seperti itu: $input-btn-focus-box-shadow: none; Perhatikan bahwa Anda perlu menimpa variabel itu di kustom Anda sendiri '_yourCusomVarsFile.scss'. Dan file itu harus diimpor dalam proyek dalam urutan pertama dan kemudian bootstrap seperti:

@import "yourCusomVarsFile";
@import "bootstrap/scss/bootstrap";
@import "someOther";

Bootstraps vars disertai dengan flag '! Default'.

$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

Jadi di file Anda, Anda akan menimpa nilai default. Berikut ilustrasinya:

$input-focus-box-shadow: none;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

Var pertama memiliki prioritas lebih dari var kedua. Hal yang sama berlaku untuk negara bagian dan kasus lainnya. Semoga ini bisa membantu Anda.

Berikut ini adalah file '_variable.scss' dari repo, tempat Anda dapat menemukan semua nilai inisial dari bootstrap: https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss

Chears


2
a:focus {
  outline: none;
}

ini bekerja untuk saya di BS3




1

Perlu diingat, jika tombol Anda berada di dalam jangkar seperti:

<a href='some_link'>
    <button class='btn'>Button</button>
</a>

Menambahkan gaya ke tombol itu sendiri mungkin tidak cukup, Anda mungkin perlu menambahkan a:focus, a:active { outline: none }aturan CSS yang sesuai (ini bekerja untuk saya).


1

Coba di bawah ini

.bootstrap-select .dropdown-toggle:focus 
 {
          outline: 0 !important;
 }

1

Terkadang {outline: 0}tidak menyelesaikan masalah dan kita bisa mencoba{box-shadow: none;}


1

Saya menggunakan bootstrap 4, Anda dapat menggunakan garis dan bayangan kotak.

#buttonId {
    box-shadow: none;
    outline: none;
}

Atau jika tombol ada di dalam elemen seperti div tanpa back-ground, bayangan kotak sudah cukup.

#buttonId {
     box-shadow: none;
}

Contoh: https://codepen.io/techednelson/pen/XRwgRB


1

Jika Anda menggunakan versi 4.3 atau lebih tinggi, kode Anda tidak akan berfungsi dengan baik. Inilah yang saya gunakan. Ini berhasil untuk saya.

.btn:focus, .btn:active {
    outline: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}

Kamu benar. Itu tidak bekerja tanpa -webkit-box-shadow: tidak ada! Penting; baris.
Emir

1

Alih-alih menargetkan pada tombol kelas ( .btn ), di sini saya menargetkan elemen tombol itu sendiri dan berfungsi untuk saya.

        button:focus {
          outline:none !important;
          box-shadow:none !important;
        }

Dan bisa menggunakan shadow-noneclass untuk input field


0

Berikut adalah metode non-CSS. Menggunakan JQuery, cukup hapus kelas "fokus" setiap kali elemen telah diklik.

$(".btn").mousemove(function(element) { $(this).removeClass("focus"); });

Metode ini dapat menyebabkan perbatasan menjadi ada dan kemudian mundur sebentar, yang menurut saya tidak buruk (sepertinya bagian dari respons ketika tombol diklik).

Alasan saya menggunakan .mousemove () adalah .click () dan .mouseup () keduanya terbukti tidak efektif.


2
neh. menambahkan lebih banyak javascript untuk mengalahkan CSS bukan yang terbaik dari praktik. MENURUT OPINI SAYA.
David

0

Mengubah nilai-nilai ini berhasil bagi saya. Saya menemukannya dengan melihat Alat Pengembang Chrome

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
    color: #fff;
    background-color: /*Change This*/;
    border-color: /*Change This*/;
}

Ini mempertahankan bayangan tombol juga, itu hanya mengubah warna tombol saat diklik.


0

Ganti pernyataan bootstrap yang tepat:

.btn-primary.focus, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{
 box-shadow: none;
}


0

Cara SCSS untuk semua elemen (tidak hanya tombol):

body {
  * {
    &:focus, &.focus,
    &:active, &.active {
      outline: transparent none 0 !important;
      box-shadow: 0 0 0 0 rgba(0,123,255,0) !important;
      -webkit-box-shadow: none !important;
    }
  }
}
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.