html - 必须点击两次才能在移动设备上打开网站链接

标签 html css hover touch

我正在运行一个 Wordpress 网站,但遇到了一个问题,我需要在移动设备上单击链接两次才能使链接真正起作用。我认为这可能是由于 :hover 在我的 CSS 中造成的,但即使删除它后,我仍然需要在移动设备上单击该链接两次。

我主页上的所有产品标题、图片和 CTA 按钮都会出现这种情况。

.product_item img:hover
.product_item p a:hover
.check_it_out:hover

谁能帮我确定如何解决这个问题?

有问题的网站是这个 https://ecoshopr.com/

最佳答案

我假设您仅在 iOS 上看到此内容,该版本存在此类已知问题。 Nicolas Zakas 首先解释了 iOS Safari 出现此类问题的罪魁祸首:iOS has a :hover problem

要恢复: iOS 具有 CSS :hover 规则的特定于平台的行为,旨在适应旧版桌面 :hover 并尝试使它们无需更改即可在触摸设备上运行。虽然该解决方案还不错,并且使此类网站按预期工作。它还可能造成冲突。

正如博客文章中所述,触发此行为的原因或多或少是:

"a :hover Rule that either hides or shows another element using visibility or display".

在您的用例中,对于链接,触发此行为的原因似乎是 :hover 上的链接 color 的更改!important 位于全局 a {transition: all; 之上的 CSS 声明} 规则...

出于好奇,我在 iOS 模拟器上调试了您的 :hover 规则。删除 !important 似乎足以解决这个问题。其他链接也需要更改相同或相似的内容。

enter image description here

对于图像不透明度转换是防止第一次点击触发的:hover操作。

要解决这个问题,应该在 :hover+transition 规则上添加 not(:focus)

enter image description here

关于html - 必须点击两次才能在移动设备上打开网站链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539866/

相关文章:

字符串中的PHP新行,如何添加<p>标签

javascript - 使用 jQuery 从 href ="tel:"属性中删除无效字符

javascript - 如何让JS/Jquery透视效果在模态内工作?

jQuery - 如何检查哪个元素正在悬停(但不是任何特定元素!)

html - 即使您没有将鼠标放在下拉菜单上,下拉菜单也是可见的

javascript - 带返回值的跨域弹窗

javascript - CSS - 如何水平居中表格谁的位置是绝对的

javascript - 使用 jquery localStorage 时,侧边栏导航出现然后在页面加载时消失

css - 使用 CSS 创建框的问题

javascript - Mouseenter 和 mouseleave - 在触发功能前稍等片刻?