Что определяет, что iPhone (мобильное сафари) будет делать с псевдоклассом css: hover? - PullRequest
2 голосов
/ 01 февраля 2011

Я экспериментирую со способами работы со всплывающими подсказками на различных мобильных устройствах.К сожалению, диапазон устройств, которые мне нужно поддерживать, варьируется от Nokias до iPhone.

К сожалению, некоторые браузеры, с которыми я имею дело, не поддерживают использование атрибута title для всплывающих подсказок.Поэтому мне нужно найти другое решение.

Для начала, я играю с подсказками чистого CSS: http://psacake.com/web/jl.asp

Этот метод использует псевдокласс: hover дляпоместите и установите z-индекс SPAN для создания всплывающей подсказки.

На iPhone это вызвало странный побочный эффект.Если щелкнуть ссылку, чтобы открыть всплывающую подсказку, для ее активации потребуется второе нажатие.

Однако применение простого стиля к другой ссылке: псевдо-класс hover (изменение цвета фона) не дает того же эффекта.,Одно нажатие активирует как стиль, так и ссылку (стиль «hover» отображается перед загрузкой следующей страницы).

Я решил эту проблему для мобильных устройств, переключившись на использование псевдокласса: focus, которыйкажется, не запускается iPhone (и используемым сенсорным устройством Nokia).Конечно, это не идеально, если бы это приложение также использовалось в настольном браузере.

Итак ... вопрос: есть ли задокументированная логика относительно того, когда браузер iPhone Safari решает прервать событие нажатия?на ссылку для показа псевдокласса: hover вместо того, чтобы не прерывать и не разрешать запуск ссылки при первом нажатии?

1 Ответ

1 голос
/ 01 февраля 2011

Я пытался найти вам ссылку в документации Apple, но самое конкретное, что я смог найти: hover заключался в том, что он эмулируется и может привести к неожиданным результатам.Я нашел одно место, где говорилось, что оно показывается только в том случае, если пользователь касается и удерживает объект. На этой странице (в нижней части "Не использовать неподдерживаемые технологии iOS") также говорится, что обычные всплывающие подсказки (с использованием атрибута title) будут отображаться, когда это также происходит.приму предположение о том, почему поведение при изменении стиля и отображении всплывающей подсказки отличается, я бы предположил, что это похоже на способ обработки событий перемещения мышью.Эта страница Обработка событий сообщает, что если содержимое страницы изменяется во время события mousemove, остальные события в цепочке (включая mouseup) не отправляются.Я предполагаю, что это поведение также относится к: hover.Если вы используете display: none, чтобы скрыть всплывающую подсказку, вы можете попробовать использовать visibility: hidden вместо этого, поскольку оно интерпретируется как «объект все еще здесь, но вы его не видите».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...