子:Hover div框影响父div框CSS

时间:2014-08-24 06:48:24

标签: html css

目标是使用以下方式影响父div框:hover via child div box。

这就是我所做的,但它并没有奏效。 HTML:

<body>
<div id=Parent-box>
<div id=Child-box></div>
</div>
</body>

CSS:

#Parent-box{
width: 750px;
height: 400px;
margin-left: auto;
margin-right: auto;
margin-top: 25px;
border: 1px solid #000;
position: relative;
}

#Child-box{
z-index: 1;
width: 700px;
height: 350px;
margin-left: 25px;
margin-top: 25px;
position: absolute;
background: #339;
border: 1px solid #000;
transition: all 200ms linear;
}

#Child-box:hover{
height: 600px;
transition: all 200ms linear;
}

#Child-box:hover + #Parent-box{
height: 650px;
transition: all 100ms linear;
}

有人知道这是否可行?

谢谢:)

5 个答案:

答案 0 :(得分:5)

PURE CSS - DEMO (不使用JavaScript或jQuery)

但您必须使用position: relative;作为Child-box div。

<强> HTML

<div id=Parent-box>
<div id=Child-box></div>
</div>

<强> CSS

#Parent-box{
width: 750px;
height: auto;
margin-left: auto;
margin-right: auto;
margin-top: 25px;
border: 1px solid #000;
position: relative;
}

#Child-box{
z-index: 1;
width: 700px;
height: 350px;
margin-left: 25px;
margin-top: 25px;
margin-bottom: 25px;
position: relative;
background: #339;
border: 1px solid #000;
transition: all 200ms linear;
}

#Child-box:hover{
padding: 125px 0px;
transition: all 200ms linear;
}

答案 1 :(得分:0)

你可以使用jquery来实现它,因为你不能使用CSS选择父div 这是Demo

$('#Child-box').hover(

function () {
    $('#Parent-box').css({
        'height': '800px'
    });
}, function () {
     $('#Parent-box').css({
        'height': '400px'
    })  ;
});

不完美,但你明白了吗?

答案 2 :(得分:0)

实际上,没有用于选择孩子父母的CSS选择器。但是,在jquery中有很多方法可以做同样的事情。这是代码:

$('#Child-box').mouseenter(function(){
   $(this).parent('#Parent-box').css('height','700px');
});


$('#Child-box').mouseleave(function(){
   $(this).parent('#Parent-box').css('height','600px');
});

答案 3 :(得分:0)

只能在您的案例中触发父元素上的悬停事件!

你可以这样做:

#Parent-box {
    width: 750px;
    height: 400px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 25px;
    border: 1px solid #000;
    position: relative;
}
#Child-box {
    z-index: 1;
    width: 700px;
    height: 350px;
    margin-left: 25px;
    margin-top: 25px;
    position: absolute;
    background: #339;
    border: 1px solid #000;
    -moz-transition: all 200ms linear;
    -o-transition: all 200ms linear;
    -webkit-transition: all 200ms linear;
    transition: all 200ms linear;
}
#Parent-box:hover  {
    height: 650px;
    -moz-transition: all 100ms linear;
    -o-transition: all 100ms linear;
    -webkit-transition: all 100ms linear;
    transition: all 100ms linear;
}

#Parent-box:hover #Child-box {
    height: 600px;
    -moz-transition: all 200ms linear;
    -o-transition: all 200ms linear;
    -webkit-transition: all 200ms linear;
    transition: all 200ms linear;
}

如果您想拥有同步器悬停效果,请更改过渡时间。我还添加了供应商特定的属性。

此处DEMO

答案 4 :(得分:0)

好吧,主要的问题是你在父元素上定义了height:400px,这才是真正的问题。在您的场景中,您可以使用纯CSS实现它;使用jquery时还有很多高级选项。检查 DEMO

CSS代码

#Parent_box{height: 400px; /*Remove height.*/}

JS代码

$(document).ready(function()
{
$("#Child_box").hover(function (){
  $(this).parent("#Parent_box").css("height", "750px;");
});
});