Удалить настройку Safari/Chrome textinput/textarea

Мне интересно, можно ли удалить синее и желтое свечение по умолчанию, когда я нажимаю на текстовую область ввода/текста с помощью CSS?

Ответ 1

textarea, input, button { outline: none; }

Хотя, утверждалось, что сохранение свечения/схемы действительно полезно для доступности, поскольку оно может помочь пользователям увидеть, какой элемент в данный момент сосредоточен.

Вы также можете использовать псевдоэлемент :focus только для целевых входов, когда пользователь выбрал их.

Демо: https://jsfiddle.net/JohnnyWalkerDesign/xm3zu0cf/

Ответ 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;   
   }