Отключение синего подсветки при нажатии div в Chrome

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Вот как можно избавиться от синей подсветки, появляющейся при активации элементов с cursor:pointer на сенсорных экранах: задайте свойству -webkit-tap-highlight-color значение transparent в CSS:

CSS
Скопировать код
.element {
  /* Синяя подсветка исчезает без следа */
  -webkit-tap-highlight-color: transparent;
}

Теперь достаточно заменить .element на класс или идентификатор конкретного элемента – можно наблюдать мгновенное изменение. Синее наложение при касании исчезнет, но функционал cursor:pointer сохранится.

Кинга Идем в IT: пошаговый план для смены профессии

Комплексное решение

Рассмотрим комплексное решение, которое позволяет полностью контролировать синюю подсветку:

CSS
Скопировать код
.no_highlight {
  /* Уничтожаем синюю подсветку без следа */
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
  /* Предотвращаем появление контекстного меню */
  -webkit-touch-callout: none;
  /* Запрещаем выделение текста для защиты контента */
  -webkit-user-select: none;
  /* Курсор указывает на интерактивность */
  cursor: pointer;
}

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

Универсальное применение

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

CSS
Скопировать код
/* Универсальное правило для всех элементов */
* {
  /* Синяя подсветка сливается с фоном */
  -webkit-tap-highlight-color: transparent;
  /* Предотвращаем появление контекстного меню на устройствах Apple */
  -webkit-touch-callout: none;
  /* Осторожно относимся к выбору контента */
  -webkit-user-select: none;
}

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

Преобразование фреймворков

Если вы работаете с фреймворками,например, с Tailwind CSS, устанавливайте стили глобально, используя @layer base:

CSS
Скопировать код
@layer base {
  .no_highlight {
    /* Даем команду на слияние с фоном */
    @apply bg-transparent;
    /* Делаем синюю подсветку неприметной */
    -webkit-tap-highlight-color: transparent;
    /* ... Добавляем свои стили ниже */
  }
}

Нужно внимательно контролировать внесенные изменения, потому что некоторые из них, как -webkit-user-select: none;, могут влиять на доступность функционала, например, на возможность копирования текста.

Визуализация

Представьте ситуацию: вы взаимодействуете с элементом в режиме cursor:pointer и сталкиваетесь с синей подсветкой:

Markdown
Скопировать код
Объект с Первоначальным Поведением:
Объект 🔵
(Касание... и Вуаля – Синий Свет!)

С помощью CSS вы меняете поведение объекта, отключая подсветку:

CSS
Скопировать код
object {
    /* Синяя Подсветка, твое присутствие здесь нежелательно! */
    -webkit-tap-highlight-color: transparent;
}

И в результате получаем:

Markdown
Скопировать код
Объект с Примененным CSS:
Объект
(Касание... и Никакой Синей Подсветки!)

Теперь вы можете спокойно взаимодействовать с интерфейсом, не опасаясь неожиданной синей подсветки.

Понимание причин появления и рассмотрение возможных альтернатив

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

  • ::selection CSS псевдо-элемент: позволяет стилизовать текст при его выделении.
  • touch-action CSS свойство: указывает браузеру, как обрабатывать события касания.

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

Стратегия действий

  1. Анализ ситуации: Определите, где именно проявляется синяя подсветка.
  2. Превентивные меры: Примените класс .no_highlight, чтобы контролировать подсветку.
  3. Тестирование в боевых условиях: Проверьте изменения в браузерах iOS и Android для достижения единообразного вида.
  4. Обеспечение доступности: Убедитесь, что ваши изменения не вредят доступности интерфейса.

Полезные материалы

  1. pointer-events | CSS-Tricks — как работать со свойством pointer-events для управления взаимодействием с курсором.
  2. touch-action – CSS: Cascading Style Sheets | MDN — подробное описание свойства touch-action для управления событиями касания.
  3. css – How to remove the blue highlight of button on mobile? – Stack Overflow — обсуждение способов устранения синей подсветки в мобильных браузерах.
  4. CSS свойство user-select — использование user-select для предотвращения выделения текста и синей подсветки.
  5. The Annoying Mobile Double-Tap Link Issue | CSS-Tricks — решение проблемы с событиями двойного нажатия на мобильных устройствах.
  6. CSS селектор ::selection — настройка подсветки выделения с помощью CSS для компенсации стандартной синей подсветки.