CSSだけで?もしそうなら、私が思いつくことができる最高のものはこれです:
<style>
a:hover *:not(#except)
{
background:green;
}
</style>
<a href="#">
Link
<p>
green
</p>
<p id="except">
black
</p>
</p>
残念ながら、:not() セレクターは CSS3 の一部であり、ほとんどのブラウザーはまだサポートしていません (ただし、Safari 4 はサポートしています)。それは 1 つの可能性ですが、あまり良くありません。
別のオプションは、Javascript を使用することです。長方形のブロック要素のみを使用している場合は、要素の x 値と y 値を正常なままにしてから、その要素の 4 つの部分 (上、下、左、右) を切り出します。背景が半透明の PNG である div を絶対に配置します。すなわち。
------------------
|lef|---up---|rig|
|t--|________|ht-|
|---| normal |---|
|---|________|---|
|---|-down---|---|
------------------