Змінити вхідний фокус завантажувального синього світла


191

Хтось знає, як змінити Bootstrap input:focus? Синє сяйво, яке з’являється при натисканні на inputполе?


Як я бачу селектор фокусування в декількох місцях. Я не впевнений, чи варто його змінити?
felix001

1
Мабуть, @mdo на 100% проти того, щоб ми могли вказати колір світіння за допомогою меншої
Бен Гарольд

Відповіді:


223

Врешті-решт я змінив наступний запис css у 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;
}

3
Я натрапив на націлюванняinput[type] {}
Морфей

2
З Bootstrap 3.x це більше не потрібно. Дивіться мою відповідь для отримання додаткової інформації.
Нейт Т

@Cricket Ця змінна наразі недоступна у налаштуваннях Boostrap :(
Caumons

2
@Caumons Це зараз. Я б рекомендував використовувати @input-border-focusзамість цієї відповіді.
Нейт Т

4
ви забулиselect
Девід Морроу

169

Ви можете використовувати .form-controlселектор для узгодження всіх входів. Наприклад, змінити на червоний:

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

Помістіть його у свій спеціальний файл css та завантажте його після bootstrap.css. Він застосовуватиметься до всіх матеріалів, включаючи textarea, select тощо ...


Це не те, чого хотіла ОП. Він запитував, як змінити світіння, а не кордон
Кевін Мартін Хосе

8
@lonesword правильний, в інфакті вам потрібно змінити і колір межі, і колір тіні. Я оновив відповідь
igaster

2
Це набагато чистіше, ніж рішення @ felix001, і воно працює
dspacejs

58

Якщо ви використовуєте Bootstrap 3.x, тепер ви можете змінити колір новою @input-border-focusзмінною.

Див коммітов для отримання додаткової інформації та попереджень.

В оновлення _variables.scss@input-border-focus .

Щоб змінити розмір / інші частини цього світіння, модифікуйте 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);
  }
}

4
Чи є у вас приклад, як це зробити чи зробити це? Заздалегідь
дякую

2
Потрібно використовувати меншу чи Sass версію таблиць стилів Bootstrap. Потім встановіть власну змінну перед імпортом таблиць стилів Bootstrap, і вона буде замінена за замовчуванням Bootstrap. Вам або потрібно буде попередньо скласти свої таблиці стилів або використовувати щось на зразок зірочок .
Nate T

Ви також можете скористатися офіційним завантажувальним сайтом для внесення спеціальних змін у менш змінні: getbootstrap.com/customize
red_trumpet

1
Приємно, але це не стосується кнопок та інших посилань, мабуть, лише введення та текстових повідомлень. Наприклад, для кнопок все одно потрібно переосмислити .btn:focus { outline: none; }.
зок

Ця відповідь працює для тих, хто використовує SASS / SCSS. @ фокус введення-замовлення ввімкнено _variables.scss.
TyMayn

32

введіть тут опис зображення введіть тут опис зображення

Ви можете змінити .form-control:focus колір, не змінюючи стиль завантажувача таким чином:

Швидке виправлення

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

Повне пояснення

  1. Знайдіть версію bootstrapCDN, яку ви використовуєте. Наприклад, для мене зараз це 4.3.1: https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.css
  2. Шукайте клас, який ви хочете змінити. Наприклад, .form-control:focusскопіюйте параметри, які ви бажаєте змінити, у свій css. У цьому випадку є border-colorі box-shadow.
  3. Виберіть колір для border-color. У цьому випадку я вибираю той самий зелений, який використовує завантажувальний інструмент для свого .btn-successкласу, шукаючи саме цей клас на сторінці bootstrap.css, зазначеній у кроці 1.
  4. Перетворіть вибраний колір у RGB і додайте його до box-shadowпараметра, не змінюючи четвертого параметра RGBA (0,25), який завантажувальний пристрій має для прозорості.

1
чудово, його простий і робочий, і мені також потрібен зелений колір :)
alfian5229

13

Для бета-версії Bootstrap v4.0.0 вам знадобиться наступне додане до таблиці стилів, що перекриває Bootstrap (або додайте після CDN / локальне посилання на бета-версію bootstrap v4.0.0, або додайте !importantдо стилів:

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

Замініть колір рамки та rgba на тінь поля, яким ви хочете будь-який колірний стиль *.


12

У Bootstrap 4, якщо скласти SASS самостійно, ви можете змінити такі змінні для управління стилем тіні фокусування:

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

Примітка: станом на Bootstrap 4.1, $input-btn-focus-colorі $input-btn-focus-box-shadowзмінні використовуються лише для вхідних елементів, але не для кнопок. Тінь фокусування для кнопок також жорстко закодована box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);, тому керувати шириною тіні можна лише за допомогою $input-btn-focus-widthзмінної.


11

Ось такі зміни, якщо ви хочете, щоб Chrome демонстрував "жовтий" контур платформи за замовчуванням.

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

1
Як я можу відключити хром-жовтий контур?
Рой Лі

Насправді НЕ відключайте всіх: контури фокусу (як я запропонував вище). Це жахливо для доступності лише для користувачів клавіатури. Ви можете відключити параметри за замовчуванням на платформі, як зазначено вище, і додати щось підходяще доступне: outline: dotted thin black;(або все, що пропонує тестування)
пітер

8

Щоб вимкнути синє світіння (але ви можете змінити код, щоб змінити колір, розмір тощо), додайте це до свого css:

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

Ось сценарій екрана, що показує ефект: до та після: введіть тут опис зображення введіть тут опис зображення


Це працювало для мене. Але мені також довелося додати кольору облямівки, оскільки він залишить його синім.
Рейчел S

6

Я приземлився до цієї нитки, шукаючи способу взагалі відключити світіння. Багато відповідей було занадто складним для моєї мети. Для зручного рішення мені знадобився лише один рядок CSS, як описано нижче.

input, textarea, button {outline: none; }

2
Я б подумав, що вам також знадобиться box-shadow: none;.
silverliebt

2
Це працювало для мене, але мені довелося додати !importantпісля box-shadowзапропонованого @silverliebt
Jefrey Sobreira Santos

5

Додайте ідентифікатор до тегу body. У власному Css (не bootstrap.css) вкажіть на новий ідентифікатор тіла та встановіть клас або тег, який ви хочете замінити, та нові властивості. Тепер ви можете будь-коли оновити завантажувальний інструмент, не втрачаючи змін.

html-файл:

  <body id="bootstrap-overrides">

файл 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;
}

Дивіться також: найкращий спосіб змінити css bootstrap


5

Насправді, у Bootstrap 4.0.0-Beta (станом на жовтень 2017 року) на вхідний елемент не посилається введення [type = "text"] , всі властивості Bootstrap 4 для елемента введення фактично засновані на формі .

Тож використовується стилі .form-control: фокус . Відповідним кодом для виділення вхідного елемента "фокусування" є наступний:

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

Досить простий у виконанні, просто змініть властивість кольору межі .


Або якщо ви використовуєте scss, просто замініть змінну $ input-focus-border-color для bootstrap 4.0.0-Beta
Zuhaib Ali

Я думаю, вам також потрібно додати цеbox-shadow: xpx ypx #80bdff;

1

У Bootstrap 3.3.7 ви можете змінити значення @ input-border-focus у розділі Forms у налаштуваннях: введіть тут опис зображення


1

На основі відповіді @ wasinger вище, у Bootstrap 4.5 мені довелося переохочувати не лише змінні кольорів, але й саму box-shadowсебе.

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


0

Я не міг вирішити це за допомогою CSS. Схоже, Boostrap отримує останнє слово, навіть якщо я маю сайт.css після завантаження. У будь-якому випадку це працювало для мене.

$(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";
}

Пізніше я виявив, що це працює в css. Очевидно лише з формами-елементами управління

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

Ось до і після знімків із інструмента розробника Chrome. Зауважте різницю кольору меж між фокусом і фокусом. З іншого боку, це не працює для кнопок. За допомогою кнопок. За допомогою кнопок ви повинні змінити властивість контуру на жодну.

введіть тут опис зображення

введіть тут опис зображення


0

Для межі введення перед фокусом. Ви можете вказати свій улюблений колір, який ви хочете використовувати, та інші css, такі як набивання тощо


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

Коли ми зосереджуємось на введенні. Ви можете вказати свій улюблений контур кольору, який хочете


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

0

Якщо ви хочете видалити тінь, повністю додайте клас shadow-noneдо вхідного елемента.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.