目标是使用以下方式影响父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;
}
有人知道这是否可行?
谢谢:)
答案 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;");
});
});