CSS3 ソリューション
opacity
要素の「オーバーレイ」ではなく、要素のレベルを制御したいことは明らかです。少しトリッキーでしたが、CSS3 対応ブラウザー (IE9、FF、Chrome でテスト済み) 向けに見つけた解決策があります。以下を使用してください(このフィドルで示されているように、もちろん、opacity
レベルは必要に応じて変更できます):
.hotspotted > img,
.hotspotted > img ~ a {
opacity: 0.2; /* "default" opacity of "page" when hovering a hotspot */
}
.hotspotted:not(:hover) > img,
.hotspotted:not(:hover) > a,
.hotspotted > img:hover,
.hotspotted > img:hover ~ a,
.hotspotted > img ~ a:hover {
opacity: 1; /* normal display opacity and that of hovered hotspot */
}
説明
の最初の 2 つのセレクターはopacity: 0.2
、 内のすべての要素の一種の「デフォルト」の不透明度になるように設定されています.hotspotted
。次に、このデフォルトは次の 5 つの要因によってオーバーライドされます。最初の二つ...
.hotspotted:not(:hover) > img,
.hotspotted:not(:hover) > a
... Web ページにマウスオーバーしていないときは、すべてが安定していることを確認してください。次の2つ…
.hotspotted > img:hover,
.hotspotted > img:hover ~ a
... ホットスポットではなくWeb ページにマウスオーバーしたときに、すべてが安定したままであることを確認してください。そしたら最後は…
.hotspotted > img ~ a:hover
...ホバー時にホットスポットをしっかりと保持しますが、最初の2つの「テイクオーバー」からの「デフォルト」を許可し、.hotspotted
コンテナー内の他のすべての要素をフェードします。