Видаліть або вимкніть межу фокусування браузера за допомогою javascript


75

Хтось знає, як відключити або маніпулювати (у більшості браузерів) пунктирною межею елемента dom, якщо він має фокус у порядку табіндексу?

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

Відповіді:


178

Просто створіть правило CSS для елементів, які ви хочете мати outline:none;


2
Це цілком добре, якщо клацнути мишею на елементі, який більше не відображається, але якщо ви переходите по клавіатурі? Як ви виділяєте елемент?
coorasse

1
@coorasse, якщо ви хочете приховати його лише для кліків, вам потрібно буде використовувати javascript і викликати .blur()елемент після натискання на нього ..
Габріеле Петріолі,

епічна коротка відповідь :) +1
Аль-Ханаш Моатаз,

38

Хитрість CSS:

:focus { outline: none; }

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

4

У Firefox 53.0, якщо я вимикаю контур одним із запропонованих рішень, Firefox відображає типовий.

Однак, якщо я використовую порожній колір, він не виявляє, що контур прихований:

input:focus{
   outline: 1px solid rgba(255,255,255,1);
}




-2
$(function() {
     $('a').click(function() { $(this).blur(); });
     $('input').click(function() { $(this).blur(); });
});

Не використовуйте CSS для вимкнення фокусу: http://outlinenone.com/ Це використовує інших користувачів.


1
чому я не повинен використовувати css? Я бачу сенс у вашому посиланні, але запропоноване вами рішення повністю збентежить графічний інтерфейс, і ви не зможете отримати доступ до полів.
helle

-8

За допомогою jQuery ви можете це зробити

$("#nav li a").focus(function(){
  $(this).blur();
});

із розмиттям я втрачаю фокус, чи не так? тому я не можу прив’язати подію клавіатури так само, як коліщатко миші ...
helle

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