0

div(id = "above")にカーソルを合わせているときに、体の背景画像/グラデーションを変更しようとしています。別の投稿(http://stackoverflow.com/questions/1462360/css)の方法に従います。 -hover-one-element-effect-for-multiple-elements)が、機能していないようです

css

body {
    background: -webkit-gradient(radial, ...);
}

.about:hover body{
    background: -webkit-gradient(radial, ...); // new gradient
}

html

<body>
    <div class="about">
        <h1 id="title">About</h1>
        <div>
            <p id="about">stuff</p>
        </div>
    </div>
</body>

これは効果がありません。ホバリング中にタイトルスタイルをイタリックに変更して、これが機能するかどうかをテストしようとしていますが、それでも使用できません

.about:hover h1.title {
    font-weight: italic;
}

それは私がそれを使う方法が間違っているのですか、それとも何か他のものがありますか、誰でも助けることができますか?

4

2 に答える 2

1

CSS(javascriptなし)でそれを行いたい場合は、次の方法でトリックを行うことができますz-index

ここで例を参照してください:http://jsfiddle.net/nCyJ4/

または、あなたの場合、 http: //jsfiddle.net/nCyJ4/1/

HTML:

<div class="initial background" id="bg0"></div>
<div class="about bgwrapper">
    <h1 id="title">About</h1>
    <div>
        <p id="about">stuff</p>
    </div>
    <div id="bg1" class="background"></div>
</div>

CSS:

.background{
    position:fixed;
    top:0;left:0;
    width:100%;height:100%;
    display:none;
    z-index:-1;
}
.bgwrapper:hover>.background,.initial.background{
    display:block;
}
.initial.background:hover{
    display:block!important;
}
.background:hover{
    display:none!important;
}
#bg0{
    background: -moz-linear-gradient(left, #FF0000 0%, #FF9900 10%, #FFFF00 16.666%, #CCFF00 20%, #32FF00 30%, #00FF00 33.333%, #00FF65 40%, #00FFFF 50%, #00FFFF 50%, #0065FF 60%, #0000FF 66.666%, #3300FF 70%, #CB00FF 80%, #FF00FF 83.333%, #FF0098 90%, #FF0004 100%);

}

#bg1{
    background: -moz-linear-gradient(left center, #FF0000, #000000) repeat scroll 0 0 transparent
}
于 2012-08-13T19:22:34.530 に答える
0

はのbody子孫ではないため、div.aboutそのようにターゲティングすることはできません。ただし、必要な効果を実現するために、小さなJavaScriptを使用することもできます。

CSS

body {
    background: -webkit-gradient(radial, ...);
}

body.hover {
    background: -webkit-gradient(radial, ...); // new gradient
}

JavaScript

document.getElementsByClassName('about')[0].onmouseover = function () {
    document.getElementsByTagName('body')[0].className += ' hover';
}
document.getElementsByClassName('about')[0].onmouseout = function () {
    var n = document.getElementsByTagName('body')[0];
    n.className = n.className.replace('hover', '');
}
于 2012-08-13T19:18:41.033 に答える