首页 > 解决方案 > Material UI - 禁用悬停:所有控件的无媒体查询(所有状态)

问题描述

使用具有触摸功能的显示器,我在任何控件上都没有悬停样式。

当我将鼠标悬停在 Material UI 按钮上时,我得到以下样式:

在此处输入图像描述

如何禁用所有 @media (hover: none) 样式,而不覆盖每个控件/每个状态的样式?

我正在使用Material UI 3.9。

标签: cssreactjsmaterial-ui

解决方案


没有任何简单的方法可以在不显式覆盖 的每次使用的情况下执行此操作@media (hover: none),尽管可以(尽管很乏味)覆盖主题中的所有不同情况。

下面的 GitHub 搜索应该可以识别出大部分起作用的组件:https ://github.com/mui-org/material-ui/search?q=%22hover%3A+none%22&unscoped_q=%22hover%3A+无%22

也可以创建一个 JSS 插件来删除这些样式。您可以在此处找到一个与您想要的相反的示例(即它始终应用触摸屏样式)。

我的意见是,你最好保持原样。如果您覆盖/删除这些样式,您将对使用触摸屏而不是鼠标的用户产生不利影响,因为如果没有这些样式,悬停效果将在触摸后一直存在,直到在其他地方发生触摸。Material-UI目前的解决方案并不理想,但如果没有更好的浏览器支持来检测用户是使用触摸还是鼠标,很难做得更好。

相关讨论/文档:


推荐阅读