Ubah cahaya biru input fokus Bootstrap

191

Adakah yang tahu cara mengubah Bootstrap input:focus? Cahaya biru yang muncul saat Anda mengklik inputbidang?

felix001
sumber
Karena saya dapat melihat pemilih fokus di beberapa tempat, saya tidak yakin apakah saya harus mengubahnya?
felix001
1
Rupanya @mdo 100% tidak memungkinkan kami untuk menentukan warna cahaya dengan variabel KURANG: github.com/twitter/bootstrap/issues/2742
Ben Harold

Jawaban:

224

Pada akhirnya saya mengubah entri css berikut di bootstrap.css

textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus {   
  border-color: rgba(126, 239, 104, 0.8);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(126, 239, 104, 0.6);
  outline: 0 none;
}
felix001
sumber
3
Saya menemukan penargetaninput[type] {}
Morpheus
2
Ini tidak lagi diperlukan dengan Bootstrap 3.x. Lihat jawaban saya untuk info lebih lanjut.
Nate T
@Cricket Variabel ini saat ini tidak tersedia di penyesuai Boostrap :(
Caumons
2
@Caumons Sekarang. Saya sarankan menggunakan @input-border-focusdaripada jawaban ini.
Nate T
4
Anda lupaselect
David Morrow
170

Anda dapat menggunakan .form-controlpemilih untuk mencocokkan semua input. Misalnya untuk berubah menjadi merah:

.form-control:focus {
  border-color: #FF0000;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(255, 0, 0, 0.6);
}

Masukkan ke dalam file css khusus Anda dan muat setelah bootstrap.css. Ini akan berlaku untuk semua input termasuk textarea, pilih dll ...

igaster
sumber
Ini bukan yang diinginkan OP. Dia bertanya bagaimana mengubah cahaya, bukan perbatasan
Kevin Martin Jose
8
@ lonesword benar, ternyata Anda harus mengubah baik warna perbatasan maupun warna bayangan. Saya telah memperbarui jawabannya
igaster
2
Ini jauh lebih bersih daripada solusi @ felix001, dan ini berfungsi
dspacejs
58

Jika Anda menggunakan Bootstrap 3.x, Anda sekarang dapat mengubah warna dengan yang baru @input-border-focus variabel .

Lihat komit untuk info lebih lanjut dan peringatan.

Dalam pembaruan _variables.scss@input-border-focus .

Untuk memodifikasi ukuran / bagian lain dari cahaya ini memodifikasi mixins / _forms.scss

@mixin form-control-focus($color: $input-border-focus) {
  $color-rgba: rgba(red($color), green($color), blue($color), .6);
  &:focus {
    border-color: $color;
    outline: 0;
    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 4px $color-rgba);
  }
}
Nate T
sumber
4
Apakah Anda memiliki contoh cara menyelesaikan atau melakukan ini? Terima kasih sebelumnya
Seany84
2
Anda harus menggunakan versi Less atau Sass dari stylesheet Bootstrap. Kemudian, tetapkan variabel khusus Anda sebelum mengimpor stylesheet Bootstrap dan itu akan menimpa default Bootstrap. Anda harus mengkompilasi ulang stylesheet Anda atau menggunakan sesuatu seperti Sprockets .
Nate T
Anda juga dapat menggunakan situs bootstrap resmi untuk membuat perubahan khusus pada variabel yang lebih sedikit: getbootstrap.com/customize
red_trumpet
1
Bagus, tapi itu tidak berlaku untuk tombol dan tautan lain, hanya input dan textarea, tampaknya. Untuk tombol, Anda masih perlu mengganti dengan .btn:focus { outline: none; }, misalnya.
zok
Jawaban ini berfungsi bagi mereka yang menggunakan SASS / SCSS. @ masukan-order-fokus di _variables.scss.
TyMayn
32

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Anda dapat memodifikasi .form-control:focus warnanya tanpa mengubah gaya bootstrap dengan cara ini:

Perbaikan cepat

.form-control:focus {
        border-color: #28a745;
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    } 

Penjelasan lengkap

  1. Temukan versi bootstrapCDN yang Anda gunakan. Misalnya bagi saya sekarang adalah 4.3.1: https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.css
  2. Cari kelas yang ingin Anda modifikasi. Misalnya .form-control:focusdan salin parameter yang ingin Anda modifikasi ke css Anda. Dalam hal ini adalah border-colordanbox-shadow .
  3. Pilih warna untuk border-color. Dalam hal ini saya memilih untuk mengambil hijau yang sama yang digunakan bootstrap untuk mereka.btn-success kelas , dengan mencari kelas tersebut di halaman bootstrap.css yang disebutkan dalam langkah 1.
  4. Konversi warna yang Anda pilih ke RGB dan tambahkan ke box-shadowparameter tanpa mengubah parameter RGBA keempat (0,25) yang dimiliki bootstrap untuk transparansi.
dcx86
sumber
1
hebat, sederhana dan berfungsi, dan saya perlu warna hijau juga :)
alfian5229
13

Untuk rilis beta Bootstrap v4.0.0 Anda akan membutuhkan yang berikut ditambahkan ke stylesheet yang menimpa Bootstrap (baik tambahkan setelah CDN / link lokal ke bootstrap v4.0.0 beta atau tambahkan !importantke stylings:

.form-control:focus {
  border-color: #6265e4 !important;
  box-shadow: 0 0 5px rgba(98, 101, 228, 1) !important;
}

Ganti warna perbatasan dan rgba pada bayangan kotak dengan gaya warna apa yang Anda inginkan *.


sumber
12

Di Bootstrap 4, jika Anda mengkompilasi SASS sendiri, Anda dapat mengubah variabel berikut untuk mengontrol gaya bayangan fokus:

$input-btn-focus-width:       .2rem !default;
$input-btn-focus-color:       rgba($component-active-bg, .25) !default;
$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;

Catatan: pada Bootstrap 4.1, $input-btn-focus-colordan $input-btn-focus-box-shadowvariabel digunakan hanya untuk elemen input, tetapi tidak untuk tombol. Bayangan fokus untuk tombol adalah hardcode box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);, jadi Anda hanya dapat mengontrol lebar bayangan melalui $input-btn-focus-widthvariabel.

wasinger
sumber
11

Berikut adalah perubahannya jika Anda ingin Chrome menampilkan garis besar platform "kuning" default.

textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, input[type="number"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="color"]:focus, .uneditable-    input:focus {
    border-color: none;
    box-shadow: none;
    -webkit-box-shadow: none;
    outline: -webkit-focus-ring-color auto 5px;
}
peater
sumber
1
Bagaimana saya bisa menonaktifkan garis kuning krom?
Roy Lee
Sebenarnya, JANGAN nonaktifkan semua: garis besar fokus (seperti yang saya sarankan di atas). Ini mengerikan untuk aksesibilitas bagi pengguna keyboard saja. Anda dapat menonaktifkan default platform seperti di atas dan menambahkan sesuatu yang dapat diakses: outline: dotted thin black;(atau apa pun yang menurut pengujian Anda berhasil)
peater
8

Untuk menonaktifkan cahaya biru (tetapi Anda dapat memodifikasi kode untuk mengubah warna, ukuran, dll), tambahkan ini ke css Anda:

.search-form input[type="search"] {  
    -webkit-box-shadow: none;
    outline: -webkit-focus-ring-color auto 0px;
} 

Inilah screencapture yang menunjukkan efek: sebelum dan sesudah: masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Radhoo
sumber
Ini berhasil untuk saya. Tapi saya juga harus menambahkan warna perbatasan karena akan membiarkannya biru.
Rachel S
6

Saya mendarat di utas ini mencari cara untuk menonaktifkan cahaya sama sekali. Banyak jawaban yang terlalu rumit untuk tujuan saya. Untuk solusi mudah, saya hanya perlu satu baris CSS sebagai berikut.

input, textarea, button {outline: none; }
massanishi
sumber
2
Saya pikir Anda mungkin perlu box-shadow: none;juga.
silverliebt
2
Itu bekerja untuk saya, tetapi saya harus menambahkan !importantsetelah yang box-shadowdisarankan oleh @silverliebt
Jefrey Sobreira Santos
5

Tambahkan Id ke tag tubuh. Dalam Css Anda sendiri (bukan bootstrap.css) arahkan ke ID tubuh baru dan atur kelas atau tag yang ingin Anda timpa dan properti baru. Sekarang Anda dapat memperbarui bootstrap kapan saja tanpa kehilangan perubahan Anda.

file html:

  <body id="bootstrap-overrides">

file css:

#bootstrap-overrides input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, textarea:focus{
  border-color: red;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(126, 239, 104, 0.6);
  outline: 0 none;
}

Lihat juga: cara terbaik untuk mengganti bootstrap css

homefreelancer
sumber
5

Sebenarnya, dalam Bootstrap 4.0.0-Beta (per Oktober 2017) elemen input tidak dirujuk oleh input [type = "text"] , semua properti Bootstrap 4 untuk elemen input sebenarnya terbentuk berbasis .

Jadi itu menggunakan .form-control: gaya fokus . Kode yang sesuai untuk menyoroti "pada fokus" elemen input adalah sebagai berikut:

.form-control:focus {
  color: #495057;
  background-color: #fff;
  border-color: #80bdff;
  outline: none;
}

Cukup mudah diimplementasikan, cukup ubah properti border-color .

Tim Mindsect
sumber
Atau jika menggunakan scss, cukup timpa variabel $ input-fokus-perbatasan-warna untuk bootstrap 4.0.0-Beta
Zuhaib Ali
Saya pikir Anda juga perlu menambahkan inibox-shadow: xpx ypx #80bdff;
1

Di Bootstrap 3.3.7 Anda dapat mengubah nilai input-perbatasan-fokus @ di bagian Formulir penyesuai: masukkan deskripsi gambar di sini

Steve
sumber
1

Membangun pada @ jawaban wasinger di atas, di Bootstrap 4.5 saya harus menimpa tidak hanya variabel warna tetapi juga box-shadowitu sendiri.

$input-focus-width: .2rem !default;
$input-focus-color: rgba($YOUR_COLOR, .25) !default;
$input-focus-border-color: rgba($YOUR_COLOR, .5) !default;
$input-focus-box-shadow: 0 0 0 $input-focus-width $input-focus-color !default;
Goulven
sumber
0

Kenapa tidak pakai saja?

 input:focus{
        outline-color : #7a0ac5;
    }
Nikhil Kulkarni
sumber
0

Saya tidak bisa menyelesaikan ini dengan CSS. Sepertinya Boostrap mendapatkan pendapat terakhir meskipun saya memiliki oleh site.css setelah bootstrap. Bagaimanapun, ini bekerja untuk saya.

$(document).ready(function () {
    var elements = document.getElementsByClassName("form-control");

    Array.from(elements).forEach(function () {
        this.addEventListener("click", cbChange, false);
    })

    });

function cbChange(event) {
    var ele = event.target;
    var obj = document.getElementById(ele.id);
    obj.style.borderColor = "lightgrey";
}

Kemudian saya menemukan ini berfungsi di css. Tentunya dengan kontrol formulir saja

.form-control.focus, .form-control:focus {
    border-color: gainsboro;
} 

Berikut adalah foto sebelum dan sesudah dari alat Pengembang Chrome. Perhatikan perbedaan warna batas antara fokus aktif dan tidak aktif. Di samping catatan, ini tidak berfungsi untuk tombol. Dengan tombol. Dengan tombol, Anda harus mengubah properti outline menjadi none.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Dan
sumber
0

Untuk batas input sebelum fokus. Anda dapat menentukan warna favorit Anda yang ingin Anda gunakan dan css lainnya seperti bantalan dll


.input {
    padding: 6px 190px 6px 15px;
    outline: #2a65ea auto 105px ;
}

Saat kami fokus pada input. Anda dapat menentukan garis warna favorit Anda yang Anda inginkan


.input:focus{
    box-shadow: none;
    border-color: none;
    outline: lightgreen auto 5px ;
}
Sachin
sumber
0

Jika Anda ingin menghapus bayangan sepenuhnya tambahkan kelas shadow-noneke elemen input Anda.

Wael Assaf
sumber