问题产生背景:ios下无需hover态,而在响应式开发的时候往往pc版需要一些交互样式,比如鼠标滑过某个模块显示/隐藏。鼠标hover后a上加背景色。
问题描述:鼠标hover显示/隐藏某模块会导致ios下触屏先显示模块,然后再跳转链接,鼠标hover给某元素加背景色,ios下出发元素有背景色,再点击空白背景色不消失。
比如:
问题解决:在框架上(html或者body)上加一个权重很高的类(比如"no_touch")。
例如:
.no_touch .video_list .list_item:hover .VP_subscribe{display:inline-block;}
.no_touch .video_list .list_item:hover {background-color:#fafafa;}
这样的话用js检测是ios触屏时就去掉html上的“no_touch”类名。
此方法是从根本上禁用了hover属性。还有一种方法是在模块上加一个类名,然后覆盖掉hover的背景色。此方法不是禁用了hover属性。而是从视觉上给用户感觉是没有了hover属性。