[解決済み] CSSのホバーとJavaScriptのマウスオーバーの比較【終了しました
2022-03-02 11:15:28
質問
ページ上のhtml要素の表示を制御するのに、CSSのelement:hoverを使うか、JavaScriptのonmouseoverを使うかの選択を迫られることがある。 次のようなシナリオで、div が input をラップしている場合を考えてみましょう。
<div>
<input id="input">
</div>
マウスカーソルがdivの上に乗ったときに入力の背景色を変えたい。CSSのアプローチは
<style>
input {background-color:White;}
div:hover input {background-color:Blue;}
</style>
<div><input></div>
JavaScriptのアプローチは
<div onmouseover="document.getElementById('input').style.backgroundColor='Blue';">
<input id="input">
</div>
それぞれの手法のメリットとデメリットを教えてください。 CSSのアプローチは、ほとんどのウェブブラウザでうまく機能するのでしょうか? JavaScriptはCSSより遅いですか?
どのように解決するのですか?
hoverの問題は、IE6がリンクにしか対応していないことです。 最近はこの手のものはjQueryを使っています。
$("div input").hover(function() {
$(this).addClass("blue");
}, function() {
$(this).removeClass("blue");
});
かなり楽になります。 IE6、FF、Chrome、Safariで使えるよ。
関連
-
[解決済み】 Uncaught TypeError: data.push is not a function
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない
-
[解決済み】'useState' が定義されていない no-undef React