Я работаю над веб-страницей и хочу использовать индивидуально оформленные <button>
теги. Так что с помощью CSS, я сказал: border: none
. Теперь он отлично работает в Safari, но в Chrome, когда я нажимаю на одну из кнопок, вокруг него появляется синяя рамка. Я думал button:active { outline: none }
или button:focus { outline:none }
будет работать, но ни один не делает. Любые идеи?
Вот как это выглядит до нажатия (и как я хочу, чтобы оно все еще выглядело после нажатия):
И это граница, о которой я говорю:
Вот мой CSS:
button.launch {
background-color: #F9A300;
border: none;
height: 40px;
padding: 5px 15px;
color: #ffffff;
font-size: 16px;
font-weight: 300;
margin-top: 10px;
margin-right: 10px;
}
button.launch:hover {
cursor: pointer;
background-color: #FABD44;
}
button.change {
background-color: #F88F00;
border: none;
height: 40px;
padding: 5px 15px;
color: #ffffff;
font-size: 16px;
font-weight: 300;
margin-top: 10px;
margin-right: 10px;
}
button.change:hover {
cursor: pointer;
background-color: #F89900;
}
button:active {
outline: none;
border: none;
}
css
google-chrome
eshellborn
источник
источник
outline: none
так, если только вы не готовы восполнить потерю доступности. Смотрите этот сайт: outlinenone.comОтветы:
Делать это не рекомендуется, так как это ограничивает доступность вашего сайта; Для получения дополнительной информации см. этот пост .
Тем не менее, если вы настаиваете, этот CSS должен работать:
Проверьте это или JSFiddle: http://jsfiddle.net/u4pXu/
Или в этом фрагменте:
источник
outline: none;
или это не имеет значения?button:focus{ outline-color: #A75000 }
... вместо того, чтобы скрывать индикатор, вы меняете его на темно-оранжевый, который соответствует стилю.Подождите! Есть причина для этого ужасного плана!
Прежде чем удалить этот уродливый синий контур, вы можете принять во внимание доступность . По умолчанию этот синий контур размещается на фокусируемых элементах. Это сделано для того, чтобы пользователи с проблемами доступности могли сфокусировать эту кнопку, нажав на нее. Некоторые пользователи не имеют двигательных навыков для использования мыши и должны использовать только клавиатуру (или другое устройство ввода) для взаимодействия с компьютером. Когда вы удаляете синий контур, больше нет визуального индикатора того, на каком элементе находится фокус. Если вы собираетесь удалить синий контур, вы должны заменить его другим типом визуальной индикации того, что кнопка находится в фокусе.
Возможное решение: затемнить кнопки при фокусировке
Для приведенных ниже примеров синий контур Chrome был сначала удален с помощью
button:focus { outline:0 !important; }
Вот основные кнопки Bootstrap, которые выглядят нормально:
Вот кнопки, когда они получают фокус:
Вот кнопки, когда они нажаты:
Как вы можете видеть, кнопки немного темнее, когда они получают фокус. Лично я бы порекомендовал сделать фокусированные кнопки еще темнее, чтобы было очень заметное различие между состоянием фокусировки и нормальным состоянием кнопки.
Это не только для инвалидов
Делать ваш сайт более доступным - это то, что часто упускают из виду, но может помочь создать более продуктивную работу на вашем сайте. Есть много обычных пользователей, которые используют команды клавиатуры для навигации по веб-сайтам, чтобы держать руки на клавиатуре.
источник
Я просто удаляю схему из всех тегов на странице, выбирая все и применяя схему: ни ко всем :)
Как упоминалось в Bagofcole, вам может понадобиться добавить! Важный, чтобы стиль выглядел так:
источник
В моем случае этой проблемы я должен был указать
box-shadow: none
источник
box-shadow
Не забудьте
!important
декларацию, для лучшего результатаПравило, которое имеет свойство! Важное, всегда будет применяться независимо от того, где это правило появляется в документе CSS.
источник
outline:0 !important
плохим UX и плохой практикой dev. Если вы делаете это, пожалуйста, убедитесь, что вы делаете что-то еще, чтобы указать положение фокуса (например, изменение цвета фона элемента).Удаление
outline
ужасно для доступности! В идеале кольцо фокусировки появляется только тогда, когда пользователь намеревается использовать клавиатуру .Использование : фокус-видимый . В настоящее время это предложение W3C для стилизации фокуса только с клавиатуры с использованием CSS, и поддерживается в Firefox ( caniuse ). Пока другие крупные браузеры не поддержат его, вы можете использовать этот надежный полифилл .
Я также написал более подробный пост на всякий случай, если вам нужно больше информации.
источник
outline
таковым, если: фокусное состояние становится ясно видимым с помощью других средств, таких какborder,
background-color
,box-shadow
и т. Д.:-moz-focusring
, но, в отличие от документов, он не делает различий между кликом и фокусом вкладки. В Chrome, на данный момент вам нужно включить определенные флаги, чтобы он работалДобавьте это в свой файл CSS.
источник
Используйте это:
или это, если это не работает:
Это работает для меня (FF и Chrome, по крайней мере). Вместо нацеливания на
:focus
состояние, просто нацельтесь на:active
состояние, и это уберет эстетически навязчивую подсветку в вашем браузере, когда пользователь нажимает на ссылку. Но он все равно сохранит состояния фокуса, когда пользователь с вкладками инвалидности или Shift-вкладками через страницу. Обе стороны счастливы. :)источник
для этой проблемы:
использовать этот:
результат:
источник
Для тех, кто использует Bootstrap и имеет эту проблему, они используют: active: focus, а также just: active и: focus, так что вам понадобится:
Надеюсь, сэкономил кому-то время на то, чтобы выяснить это, ударил меня по голове, удивляясь, почему такая простая вещь не работает.
источник
Большинство решений не будут работать, если вы используете Bootstrap 4.1 и, возможно, другие версии. После долгих ударов головой я обнаружил, что вам нужно применить класс shadow-none :
источник
Вот что сработало для меня:
источник
Исправление для Chrome и других браузеров
источник
попробуйте этот код для всех элементов, у которых есть проблема с синей рамкой
или
источник
Еще один способ решить проблему доступности, о которой здесь еще не говорилось, - немного Javascript . Кредиты идут этот проницательный блог пост от hackernoon: https://hackernoon.com/removing-that-ugly-focus-ring-and-keeping-it-too-6c8727fefcd2
Подход здесь действительно прост, но эффективен: добавление класса, когда люди начинают использовать клавишу табуляции для навигации по странице (и, при необходимости, удаление его при повторном переключении на мышь. Затем вы можете использовать этот класс, чтобы отобразить контур фокуса или нет ,
источник
Я столкнулся с той же проблемой, поэтому я использовал простой CSS-
источник
Если вы хотите удалить тот же эффект при вводе, вы можете добавить следующий код, а также кнопку.
источник
Пока все современные браузеры не начнут поддерживать css-selector : focus-visible ,
самый простой и, возможно, лучший способ сохранить доступность - это удалить этот хитрый фокус только для пользователей мыши и сохранить его для пользователей клавиатуры :
1. Используйте этот крошечный полифилл (около 10 КБ): https://github.com/WICG/focus-visible
2. Добавьте следующий код где-нибудь в вашем CSS:
Браузерная поддержка css4-селектора: фокус-видимый сейчас очень слабый:
https://caniuse.com/#search=focus-visible
источник
Просто пиши
outline:none;
. Нет необходимости использовать псевдоэлементfocus
источник
Это проблема в семье Chrome и была там навсегда.
Ошибка была поднята https://bugs.chromium.org/p/chromium/issues/detail?id=904208
Это может быть показано здесь: https://codepen.io/anon/pen/Jedvwj как только вы добавите границу к чему-либо кнопочному (скажем, роль = кнопка добавлена в тег, например) Chrome не работает и устанавливает состояние фокуса, когда вы щелкаете мышью.
Я настоятельно рекомендую использовать это исправление: https://github.com/wicg/focus-visible .
Просто сделайте следующее
Добавьте скрипт в ваш HTML:
или импортируйте в ваш основной входной файл, если используете webpack или что-то подобное:
затем поместите это в ваш файл CSS:
Вы можете просто установить:
но если у вас большое количество пользователей, вы ставите в невыгодное положение тех, кто не может использовать мышь, или тех, кто просто хочет использовать свою клавиатуру для скорости.
источник
У меня была такая же проблема с начальной загрузкой. Я решил как с контуром и box-shadow
источник