Когда вы касаетесь элемента HTML в Safari на iPad, он становится серым. Какова логика решения, какой элемент среди вложенных элементов отображается серым?

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

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

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

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

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

Спасибо.

Ответ 1

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

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

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

Он не отключит выделение, но сделает его невидимым (a opacity нуля).

Я не тестировал это, однако.

Ответ 2

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

Ответ 3

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

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

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