タッチデバイスに降りてきたとき、ホバー動作をしたくありません。 Webサイト全体ですべてのホバー効果を一度に無効にすることは可能ですか?
Modernizrを使用してタッチを検出し、クラスを設定するとします。
これは私が思いついたものですが、それは多くの矛盾を与えます:
html.touch *:hover {
color: inherit !important;
background: inherit !important;
}
純粋なCSSでこれを行う方法はありますか?そうでない場合は、JavaScriptでどのように行うことができますか?
all:unset
またはall:initial
をお試しください
html.touch *:hover {
all:unset!important;
}
サポートは制限されています( https://developer.mozilla.org/en-US/docs/Web/CSS/all )
キャッチオールソリューションを試みることは、おそらくトリッキーになるでしょう。私はあなたがホバーを定義したあなたのCSSのどこかに変換するでしょう:
.thing:hover {}
modernizrクラスを含めるには:
html.no-touch .thing:hover {}
Modernizrはjavascriptであるため、Modernizrを使用するソリューションは「純粋なCSSソリューション」ではないことに注意する必要があります。