Когда вы касаетесь элемента HTML в Safari на iPad, он становится серым. Какова логика, чтобы решить, какой элемент среди вложенных элементов показан серым? - PullRequest
11 голосов
/ 12 августа 2010

Когда вы касаетесь элемента, такого как поле редактирования, на веб-странице iPad, он становится серым, когда вы прикасаетесь к нему.

У меня есть таблица, обернутая плавающим элементом div.Вместо того, чтобы отдельный элемент данных или строка становились серыми, вся таблица (или ее оберточный элемент) становится серой при прикосновении к элементу данных.(Функция этой таблицы - всплывающее окно автозаполнения)

В другом месте на сайте у меня есть таблица, в которой только элемент данных, к которому прикоснулись, становится серым.

Интересно, сможет ли кто-нибудьЯ объясню логику этого поседения на ощупь, чтобы мы могли кодировать нашу таблицу, чтобы получить желаемое поведение.В идеале, мы хотели бы, чтобы строка выделялась при касании.

В альтернативном варианте, если бы мы могли отключить это поведение при поседении, это было бы другим вариантом.Затем мы могли бы кодировать выделение самостоятельно.Есть ли способ отключить это поведение для определенных элементов HTML?

Спасибо.

Ответы [ 3 ]

23 голосов
/ 12 августа 2010

Этот автор предлагает решение для удаления выделения:

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

-webkit-tap-highlight-color: rgba(0,0,0,0); 

Это не отключит подсветку, но сделает ее невидимой (opacity от нуля).

Я не проверял это, однако.

1 голос
/ 12 августа 2010

Я обнаружил кое-что о «логике», лежащей в основе поведения седых. Кажется, что элементы, имеющие обработчики, такие как onclick, onmousedown и т. Д., Демонстрируют поведение, а элементы без таких обработчиков - нет. (Несколько нудный) обходной путь для нас - изменить код автозаполнения, чтобы каждая строка имела собственный обработчик onmousedown и т. Д., А не упаковывающий div, заботящийся об этом.

0 голосов
/ 12 августа 2010

Попробуйте стилизовать div-обертку с помощью select: none;

Это должно отключить его, и тогда вы сможете самостоятельно кодировать выделение на фокусе.

Большинство браузеров фактически делают это, но этонемного больше заметно на iPad и других продуктах Apple touch.Это действительно для удобства использования, поэтому я бы рекомендовал отключать его только в том случае, если это вызывает проблемы, подобные той, которую вы упомянули.Он помогает пользователям узнать, на что они нажимают, и дает им возможность отодвинуть палец, если они ошибаются.

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