Как игнорировать стили CSS :hover на устройствах с сенсорным экраном
Задача: решение проблем с отображением при наведении на сенсорных устройствах
Свойство CSS :hover добавляет интерактивный стиль к элементам при наведении курсора мыши. Однако это создает проблему на сенсорных устройствах, где нет понятия наведения. Это может привести к неожиданному поведению или нарушениям зрения при взаимодействии пользователей с элементами на сенсорном экране.
Решения:
1. Удаление стилей :hover из JavaScript
С помощью JavaScript можно удалить все правила CSS, содержащие :hover, фактически отключив это свойство на сенсорных устройствах. Однако у этого метода есть недостатки:
2. Медиа-запросы только для CSS
Включение правил :hover в блоки @media может отключить эффекты наведения на сенсорных устройствах. Однако этот подход:
3. Обнаружение JavaScript и добавление CSS в начало
Обнаруживая сенсорный ввод с помощью JavaScript, в тело документа можно добавить специальный класс (например, hasHover). Затем ко всем правилам :hover можно добавить этот класс, чтобы отключить эффекты наведения на сенсорных устройствах. Хотя этот метод работает хорошо, он по-прежнему сталкивается с проблемами на устройствах смешанного ввода.
4. Динамическое обнаружение наведения и переключение классов
Этот метод сочетает в себе обработку событий JavaScript и манипулирование классами для динамического переключения эффектов наведения. Он включает эффекты наведения при обнаружении курсора мыши и отключает их при возникновении события касания. Этот подход обеспечивает наиболее надежное решение, работающее в широком спектре браузеров и устройств ввода.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3