のときにアイテムの上にカーソルを合わせると少し問題が発生しましたopacity: 0;
が、 とは異なりdisplay: none;
、アイテムはまだ空間に存在するため (表示されないだけです)、そのオブジェクトに関連付けられたホバー イベントは引き続き発生します。
私が使用しているコードを実際に投稿することはできませんが、それをシミュレートするためにもう少し説明を加えてフィドルを設定しました。注意点として、Javascript を使用して解決したくはありません。純粋な HTML/CSS を維持するようにしてください。また、以下のフィドルから HTML と CSS を投稿しました。
HTML:
<div class="container">
<div class="secondary-container">
.opacity-0 fills this box.
<div class="opacity-0"></div>
<div class="on-hover">Hello, world!</div>
</div>
</div>
CSS:
body {
font-family: sans-serif;
}
.container {
width: 200px;
height: 200px;
background-color: blue;
}
.container .secondary-container {
width: 100px;
height: 100px;
margin: 0 auto;
background-color: white;
padding: 5px;
box-sizing: border-box;
}
.container .secondary-container .opacity-0 {
width: 100px;
height: 100px;
background-color: red;
margin-top: -41px;
margin-left: -5px;
opacity: 0;
}
.on-hover {
display: none;
color: white;
}
.container .secondary-container .opacity-0:hover ~ .on-hover {
display: block;
}
そして説明:
白い四角にカーソルを合わせると、「Hello, world!」というテキストが表示されます。表示する必要があります (div.on-hover から)。ただし、CSS に明示的に記載されているように、実際には .opacity-0 にカーソルを合わせています。
.opacity-0 にホバーできるようにする必要があります。不透明度が 0 の場合 (つまり、オブジェクトは表示されませんが、スペースに存在する場合)、ホバー イベントは発生しません。opacity が 1 の場合、.opacity-0 にカーソルを合わせると、通常どおりホバー イベントが実行されます。できれば Javascript は使用しないでください。
私がこれを驚くほどうまく説明していない可能性があることに気付いたので、それについての質問に喜んで答えてください。
助けてくれてありがとう:)