私はCSSでそれをやってのクリーン(あるいはハック)方法を考えることはできません。あなたが何か他のことを理解していない場合、ここにはJavaScriptのメソッドがあります。ちょうどをbody
にトラップしてください。
function isOver(element, e) {
var left = element.offsetLeft,
top = element.offsetTop,
right = left + element.clientWidth,
bottom = top + element.clientHeight;
return (e.pageX > left && e.pageX < right && e.pageY > top && e.pageY < bottom);
};
デモ:http://jsfiddle.net/ThinkingStiff/UhE2C/
HTML:
<div id="parent"></div>
<div id="overlap"></div>
CSS:
#parent {
border: 1px solid red;
height: 100px;
left: 50px;
position: relative;
top: 50px;
width: 100px;
}
#overlap {
background-color: blue;
border: 1px solid blue;
height: 100px;
left: 115px;
position: absolute;
top: 130px;
width: 100px;
z-index: 1;
}
スクリプト:
document.body.addEventListener('mousemove', function (event) {
if(isOver(document.getElementById('parent'), event)) {
document.getElementById('parent').innerHTML = 'is over!';
} else {
document.getElementById('parent').innerHTML = '';
};
}, false);
function isOver(element, e) {
var left = element.offsetLeft,
top = element.offsetTop,
right = left + element.clientWidth,
bottom = top + element.clientHeight;
return (e.pageX > left && e.pageX < right && e.pageY > top && e.pageY < bottom);
};
あなたはいくつかのサンプルマークアップを投稿すると、あなたが起こるしたいものを示してもらえますか?子div要素の1つを動かすと、親divのスタイルを設定したいと思うでしょうか? –
このような計算はJavaScriptでのみ行うことができます。 – BoltClock
CSS3で兄弟セレクタがあります:http://stackoverflow.com/questions/1817792/css-previous-sibling-selectorこれは、ブラウザの最近のバージョンのために開発されていることを意味します。 –