CSSはブラックベリーではなく、iphoneではないのですか?

Imモバイルはサイトを最適化し、iveはフライアウトメニューを作った。 Iveは、ホバー上のメニューボタンの色を変更することを無効にしました。私はiPhoneがホバー疑似クラスを保持するために最後にクリックされたと考えているので、これを行った。

しかし、今ではブラックベリーでテストしていて、デスクトップスタイルのカーソルを持っているので、マウスオーバーで色を変える要素の恩恵を受けるでしょう。

iPhoneではホバーカラーを無効にできますが、ブラックベリーでは無効にすることはできますか?より一般的には、ブラックベリーのような非タッチスクリーンデバイスの場合にのみホバーオーバーカラーを持たせる方法があります。 ありがとう

1
明示的なデバイス検出なしでは、私は思っていません。
追加された 著者 ceejayoz,

1 答え

これはあなたの質問の最初の部分に答えます。 Modernizrを使用してからappleOSテストを追加してみてください。

Modernizr.addTest('ipad', function() {
  return !!navigator.userAgent.match(/iPad/i);
});

Modernizr.addTest('iphone', function() {
  return !!navigator.userAgent.match(/iPhone/i);
});

Modernizr.addTest('ipod', function() {
  return !!navigator.userAgent.match(/iPod/i);
});

Modernizr.addTest('appleios', function() {
  return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone);
});

そこから、iOSの場合は本体にクラスを追加し、iOS以外のデバイスの場合のみホバークラスを適用することができます。

理想的には、Modernizrがタッチをサポートしていないブラウザーに追加する「notouch」ボディー・クラスを使用することができますが、私の経験上、このクラスはBlackberryブラウザーに追加されません。違った発見をしたら教えてください!

0
追加された
私はModernizrの使用をサポートしますが、このアプローチは少しです。簡単なModernizr.touchオブジェクトがあります。これは、質問者が望むもののポイントまでです。だから、javascript経由で検出している場合は、これを行うことができます:if(!Modernizr.touch){//ここにno-touch hoversと入力します}。 CSSを使って作業している場合は、Modernizrのクラス名を使用して、.no-touch .className:hover {//ここにスタイルを入力}のようにします。
追加された 著者 RussellUresti,
私は間違いなく、このアプローチは多少ではあるが、Modernizr.touchと.no-touchのクラス名について言及していることに気づくだろう。そして、私はModernizrがBlackberryブラウザ(タッチをサポートしていないブラウザ)サポートタッチ。しかし、私が言ったように、もし誰かが違った発見をしたら、それは良いことです!
追加された 著者 Joel Salisbury,