На моєму сайті є декілька меню css, які розширюються за допомогою :hover
(без js)
Це працює напіврозбито на iDevices, наприклад, натискання активує :hover
правило та розширює меню, але натискання в іншому місці не видаляє :hover
. Крім того, якщо в елементі є :hover
посилання, вам потрібно двічі натиснути, щоб активувати посилання:hover
, посилання другого натискання).
Я зміг змусити речі добре працювати на iphone, прив'язавши touchstart
подію.
Проблема в тому, що іноді мобільне сафарі все-таки вирішує запускати :hover
правило з css замість могоtouchstart
подій!
Я знаю, що це проблема, тому що, коли я відключаю всі :hover
правила вручну в css, мобільне сафарі чудово працює (але звичайні браузери, очевидно, цього більше не роблять).
Чи є спосіб динамічно "скасувати" :hover
правила для певних елементів, коли користувач перебуває в мобільному сафарі?
Подивіться і порівняйте поведінку iOS тут: http://jsfiddle.net/74s35/3/ Примітка: лише деякі властивості css ініціюють поведінку у два кліки, наприклад display: none; але не фон: червоний; або оформлення тексту: підкреслення;