Мне интересно, можно ли удалить синее и желтое свечение по умолчанию, когда я нажимаю на текстовую область ввода/текста с помощью CSS?
Удалить настройку Safari/Chrome textinput/textarea
Ответ 1
textarea, input, button { outline: none; }
Хотя, утверждалось, что сохранение свечения/схемы действительно полезно для доступности, поскольку оно может помочь пользователям увидеть, какой элемент в данный момент сосредоточен.
Вы также можете использовать псевдоэлемент :focus
только для целевых входов, когда пользователь выбрал их.
Ответ 2
Этот эффект может возникать и для элементов, не входящих в систему. Я нашел следующие работы в качестве более общего решения
:focus {
outline-color: transparent;
outline-style: none;
}
Обновление: Вам может не понадобиться использовать селектор :focus
. Если у вас есть элемент, скажите <div id="mydiv">stuff</div>
, и вы получите внешнее свечение на этом элементе div, просто примените, как обычно:
#mydiv {
outline-color: transparent;
outline-style: none;
}
Ответ 3
В текстовом изменении размеров в браузерах на основе webkit:
Установка max-height и max-width в текстовом поле не приведет к удалению ручка визуального изменения размера. Попробуйте:
resize: none;
(и да, я согласен с "стараюсь избегать делать что-либо, что нарушает ожидания пользователя", но иногда это имеет смысл, то есть в контексте веб-приложения)
Чтобы настроить внешний вид элементов формы webkit с нуля:
-webkit-appearance: none;
Ответ 4
Carl W:
Этот эффект может возникать и для элементов, не входящих в систему. Я нашел следующие работы в качестве более общего решения
:focus { outline-color: transparent; outline-style: none; }
Я объясню это:
-
:focus
означает, что он стилирует элементы, которые находятся в фокусе. Поэтому мы ставим элементы в фокусе. -
outline-color: transparent;
означает, что синее свечение прозрачно. -
outline-style: none;
делает то же самое.
Ответ 5
Это решение для людей, которые заботятся о доступности.
Пожалуйста, не используйте outline:none;
для отключения контура фокуса. Если вы это сделаете, вы убиваете доступность Интернета. Существует доступный способ сделать это.
Отметьте эту статью, которую я написал, чтобы объяснить, как удалить границу доступным способом.
Краткая идея состоит в том, чтобы показывать только границу контура, когда мы обнаруживаем пользователя клавиатуры. Как только пользователь начнет использовать свою мышь, мы отключим контур. В результате вы получаете лучшее из двух.
Ответ 6
Если вы хотите удалить свечение с кнопок в Bootstrap (что не обязательно плохо UX, на мой взгляд), вам понадобится следующий код:
.btn:focus, .btn:active:focus, .btn.active:focus{
outline-color: transparent;
outline-style: none;
}
Ответ 7
Я испытал это на div
, у которого было событие click, и после 20 некоторых поисков я нашел этот фрагмент, который сохранил мой день.
-webkit-tap-highlight-color: rgba(0,0,0,0);
Это отключает выделение по умолчанию в веб-браузере webkit
Ответ 8
<select class="custom-select">
<option>option1</option>
<option>option2</option>
<option>option3</option>
<option>option4</option>
</select>
<style>
.custom-select {
display: inline-block;
border: 2px solid #bbb;
padding: 4px 3px 3px 5px;
margin: 0;
font: inherit;
outline:none; /* remove focus ring from Webkit */
line-height: 1.2;
background: #f8f8f8;
-webkit-appearance:none; /* remove the strong OSX influence from Webkit */
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
}
/* for Webkit CSS-only solution */
@media screen and (-webkit-min-device-pixel-ratio:0) {
.custom-select {
padding-right:30px;
}
}
/* Since we removed the default focus styles, we have to add our own */
.custom-select:focus {
-webkit-box-shadow: 0 0 3px 1px #c00;
-moz-box-shadow: 0 0 3px 1px #c00;
box-shadow: 0 0 3px 1px #c00;
}
/* Select arrow styling */
.custom-select:after {
content: "▼";
position: absolute;
top: 0;
right: 0;
bottom: 0;
font-size: 60%;
line-height: 30px;
padding: 0 7px;
background: #bbb;
color: white;
pointer-events:none;
-webkit-border-radius: 0 6px 6px 0;
-moz-border-radius: 0 6px 6px 0;
border-radius: 0 6px 6px 0;
}
</style>
Ответ 9
Мне было удобно удалить схему на кнопке ввода "раздвижной двери", потому что контур не покрывает правую "крышку" изображения раздвижной двери, что делает состояние фокусировки немного неудобным.
input.slidingdoorbutton:focus { outline: none;}
Ответ 10
несколько раз это происходит, кнопки также используются ниже, чтобы удалить внешнюю линию
input:hover
input:active,
input:focus,
textarea:active,
textarea:hover,
textarea:focus,
button:focus,
button:active,
button:hover
{
outline:0px !important;
}
Ответ 11
Мне просто нужно было удалить этот эффект из полей ввода текста, и я не мог заставить другие методы работать совершенно правильно, но это то, что работает для меня;
input[type="text"], input[type="text"]:focus{
outline: 0;
border:none;
box-shadow:none;
}
Протестировано в Firefox и в Chrome.
Ответ 12
Конечно! Вы можете удалить синюю границу также со всех элементов HTML, используя *
*{
outline-color: transparent;
outline-style: none;
}
и
*{
outline: none;
}