HTML
<p>im a duck</p>
CSS
p:hover {
display:none;
}
ホバリングしたら消えるんじゃないの?
それは消えます。
ただし、消えた後はホバリングされていないため、再び表示されます。
マウスを動かすたびに、サイクルが繰り返されます。マウスをその上に移動すると、ちらつきが表示されます。
正確な動作はブラウザによって異なります。特に、Chrome はマウス イベントのホバー状態のみを再計算します。
簡単な代替手段は、次のようにすることです。
p:hover {
opacity: 0;
}
ただし、それはホバリングが発生している間のみ機能します。ホバリングが停止すると、要素は非表示になりません。
display:none
ホバー時に要素を非表示にするため、要素はホバーされなくなり、再表示されます。
visibility:hidden;
要素を非表示に設定しますが、可視状態では、要素はhover
イベントをリッスンしていないため、次のように再表示されます。display:none
技術的には、ホバー時にこれを実行して、目的の効果を得ることができます
opacity:0;
要素の上にカーソルを置いている間、要素は非表示のままになります。これは、不透明度が影響しないため、要素がまだイベントをリッスンしているためです。
ここに3を比較するフィドルがあります