[解決済み] :touch CSS pseudo-class or something similar?
2023-03-09 14:32:09
質問
マウスボタンを押したまま、クリックするとスタイルが変わるようなボタンを作りたいと思っています。また、モバイル ブラウザでタッチされた場合にも、同様にスタイルを変更したいと思います。一見すると、CSSの:active擬似クラスを使うのが一番わかりやすいのですが、これはうまくいきませんでした。フォーカスを試してみましたが、これもうまくいきません。hoverも試してみましたが、ボタンから指を離した後もそのスタイルが維持されました。これらの観察はすべて、iPhone 4 と Droid 2 で行われました。
モバイル ブラウザ (iPhone、iPad、Android、およびできればその他) で効果を再現する方法はありますか? 今のところ、私はこのようなことを行っています。
<style type="text/css">
#testButton {
background: #dddddd;
}
#testButton:active, #testButton.active {
background: #aaaaaa;
}
</style>
...
<button type="button" id="testButton">test</button>
...
<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.1.min.js'></script>
<script type='text/javascript'>
$("*").live("touchstart", function() {
$(this).addClass("active");
}).live("touchend", function() {
$(this).removeClass("active");
});
</script>
デスクトップ用には:active擬似クラス、タッチ用にはactiveクラスがあります。
私は、Javascript を使用せずに、よりシンプルな方法がないかと考えています。
どのように解決するのですか?
のようなものはありません。
:touch
というのは、W3Cの仕様では
http://www.w3.org/TR/CSS2/selector.html#pseudo-class-selectors
:active
はうまくいくはずだ、と私は思う。
の順序は
:active
/
:hover
擬似クラスは正しく機能するために重要です。
以下は、その上のリンクからの引用です。
インタラクティブなユーザーエージェントは、ユーザーの操作に反応してレンダリングを変更することがあります。CSS では、よくあるケースに対して 3 つの擬似クラスを提供しています。
- hover 擬似クラスは、ユーザが(何らかのポインティングデバイスで)要素を指定する際に適用されます。 (を指定するが、アクティブにしない場合に適用されます。 は適用されません。例えば、視覚的な ユーザエージェントは、この 擬似クラスは、カーソル(マウス ポインタ)が要素によって生成されるボックスの上に乗ったとき,この擬似クラスを適用することができる。 を適用することができる。インタラクティブメディアをサポートしない利用者エージェント インタラクティブメディアをサポートしない利用者エージェントは,この擬似クラスをサポートする必要はない。 この擬似クラスをサポートする必要はない。 をサポートする適合する利用者エージェントもある。 は,この擬似クラスをサポートできないことがある。 は,この擬似クラスをサポートすることができないかもしれない(例えば,ペン デバイスなど)。
- アクティブ擬似クラスは、要素がユーザーによって活性化されている間、適用されます。 を適用します。例えば ユーザがマウス ボタンを押してから離すまでの間。
- :focus 疑似クラスは、要素がフォーカスを持つ間適用されます。 (キーボードイベントや他の形式のテキスト入力を受け入れる) フォームのテキスト入力) の間適用されます。
関連
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み】配列に何かを追加する方法は?
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Chromeで素早くクリックしたときに、要素が青くハイライトされるのを防ぐ方法は?
-
[解決済み] JSのDateからDay名
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] 各オブジェクトに?重複
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] これは純関数ですか?
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?