it-swarm-ru.tech

Как удалить пунктирный контур Firefox на КНОПКАХ, а также ссылки?

Я могу заставить Firefox не отображать уродливые пунктирные очертания фокуса на связи с этим:

a:focus { 
    outline: none; 
}

Но как я могу сделать это для тегов <button>? Когда я делаю это:

button:focus { 
    outline: none; 
}

кнопки все еще имеют пунктирный контур фокуса, когда я нажимаю на них.

(и да, я знаю, что это проблема юзабилити, но я хотел бы предоставить свои собственные подсказки фокуса, которые соответствуют дизайну вместо уродливых серых точек)

459
Edward Tanguay
button::-moz-focus-inner {
  border: 0;
}
686
user27656

Нет необходимости определять селектор.

:focus {outline:none;}
::-moz-focus-inner {border:0;}

Однако это нарушает лучшие практики доступности от W3C. План предназначен для тех, кто ориентируется на клавиатуре.

https://www.w3.org/TR/WCAG20-TECHS/F78.html#F78-examples

280
Anderson Custódio

Если вы предпочитаете использовать CSS, чтобы избавиться от пунктирного контура:

/*for FireFox*/
    input[type="submit"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner
    {   
        border : 0px;
    } 
/*for IE8 */
    input[type="submit"]:focus, input[type="button"]:focus
    {     
        outline : none; 
    }
46
chinkchink

Ниже работал для меня в случае ССЫЛКИ, думал о разделении - в случае, если кто-то заинтересован.

a, a:visited, a:focus, a:active, a:hover{
    outline:0 none !important;
}

Ура!

42
foxybagga
:focus, :active {
    outline: 0;
    border: 0;
}
22
blizzyx

[Обновление] Это решение больше не работает. Решение, которое сработало для меня, это одно https://stackoverflow.com/a/3844452/92556

Ответ, помеченный как правильный, не работал с Firefox 24.0.

Чтобы удалить пунктирный контур Firefox на кнопках и тегах привязки, я добавил следующий код:

a:focus, a:active, 
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}

Я нашел решение здесь: http://aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html

9
Renato Carvalho

Перепробовал большинство ответов здесь, но ни один из них не помог мне. Когда я понял, что мне нужно избавиться от синего контура на кнопках на Chrome, я нашел другое решение. Удалить синюю рамку с кнопки css в Chrome

Этот код работал для меня на Firefox версии 30 на Windows 7. Возможно, он мог бы помочь кому-то еще там :)

button:focus {outline:0 !important;}
7
Vartox

Для этого в Интернете найдено много решений, многие из которых работают, но для принудительного применения этого, чтобы абсолютно ничто не могло выделить/сфокусировать один раз при использовании следующего:

::-moz-focus-inner, :active, :focus {
    outline:none;
    border:0;
    -moz-outline-style: none;
}

Это просто добавляет немного дополнительной безопасности и заключает сделку!

5
Shannon Hochkins

Там нет никакого способа, чтобы удалить эти точечный фокус в Firefox с помощью CSS.

Если у вас есть доступ к компьютерам, на которых работает ваше веб-приложение, перейдите к about: config в Firefox и установите для browser.display.focus_ring_width значение 0. Тогда Firefox вообще не будет отображать пунктирные границы.

Следующая ошибка объясняет тему: https://bugzilla.mozilla.org/show_bug.cgi?id=74225

5
Vitaly Sharovatov

Просто добавьте этот CSS для выбора

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000;
}

Это работает нормально для меня.

4
Abhay Singh

Протестировано на Firefox 46 и Chrome 49 с использованием этого кода.

input:focus, textarea:focus, button:focus {
    outline: none !important;
}

До (видны белые точки)

input with white dots

после (белые точки невидимы) enter image description here

Если вы хотите применить только к нескольким полям ввода, кнопок и т.д. Используйте более конкретный код.

input[type=text] {
  outline: none !important;
}

Удачного кодирования!

4
Madan Sapkota

В большинстве случаев без добавления !important в код CSS это не сработает.

Итак, не забудьте добавить !important

a, a:active, a:focus{
    outline: none !important; /* Works in Firefox, Chrome, IE8 and above */
}


Или любой другой код:

button::-moz-focus-inner {
  border: 0 !important;
}
3
herci

Возможно, вы захотите усилить фокус, а не избавиться от него.

button::-moz-focus-inner {border: 2px solid transparent;}

button:focus::-moz-focus-inner {border-color: blue} 
2
John

Если у вас есть граница на кнопке и вы хотите скрыть пунктирный контур в Firefox без удаление границы (и, следовательно, это дополнительная ширина на кнопке), вы можете использовать:

.button::-moz-focus-inner {
    border-color: transparent;
}
2
Dave Everitt

Похоже, что единственный способ достичь этого, установив

browser.display.focus_ring_width = 0

примерно: конфигурация для каждого браузера.

2
AlexWilson
button::-moz-focus-inner { border: 0; }

Где button может быть любым селектором CSS, для которого вы хотите отключить поведение.

2
wavded

Я думаю, что вы действительно должны знать, что вы делаете, удаляя контур фокуса, потому что это может испортить его для навигации с помощью клавиатуры и доступности.

Если вам нужно убрать его из-за проблем с дизайном, добавьте состояние :focus к кнопке, которое заменяет это на какое-то другое визуальное указание, например, изменение границы на более яркий цвет или что-то в этом роде.

Иногда я чувствую необходимость вычеркнуть этот раздражающий контур, но я всегда готовлю визуальный сигнал альтернативного фокуса.

И никогда использовать функцию blur() js. Используйте псевдо-класс ::-moz-focus-inner.

2
Flatline

Код CSS ниже работает, чтобы удалить это:

a:focus, a:active, 
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}
2
kurumkan

Удалить пунктирный контур из ссылок, кнопки и элемента ввода.

a:focus, a:active,
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}
2
Fizer Khan

Это получит контроль диапазона:

:focus {
    outline:none;
}
::-moz-focus-inner {
    border:0;
}
input[type=range]::-moz-focus-outer {
    border: 0;
}

From: Удалить пунктирный контур из элемента ввода диапазона в Firefox

2
bob

Да, не пропустите ! Важно

button::-moz-focus-inner {
 border: 0 !important;
}
1
Riwaj Chalise

Перепробовав много вариантов из вышеперечисленного у меня сработало только следующее.

*:focus, *:visited, *:active, *:hover  { outline:0 !important;}
*::-moz-focus-inner {border:0;}
0
Waqas Bukhary

Вы можете попробовать button::-moz-focus-inner {border: 0px solid transparent;} в вашем CSS.

0
usual

Это работает на Firefox V-27.0

 .buttonClassName:focus {
  outline:none;
}
0
star18bit

Вместе с Bootstrap 3 я использовал этот код. Второй набор правил просто отменяет то, что bootstrap делает для кнопок фокуса/активной:

button::-moz-focus-inner {
  border: 0;    /*removes dotted lines around buttons*/
}

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

Обратите внимание, что ваш собственный файл CSS должен идти после Bootstrap файла CSS в вашем HTML-коде, чтобы переопределить его.

0
Ehsan88