Html CSS3-从一个div悬停到另一个div
我不知道当鼠标悬停在另一个div的子对象上时,如何或者甚至可能更改一个div的子对象的属性 这是一个例子。Html CSS3-从一个div悬停到另一个div,html,css,hover,nested,Html,Css,Hover,Nested,我不知道当鼠标悬停在另一个div的子对象上时,如何或者甚至可能更改一个div的子对象的属性 这是一个例子。 #smalldiv1:悬停#smalldiv2{ 背景:黄色;} 更准确地说,如何更改一个div悬停在另一个div上的属性,而这两个div分别位于两个包装器中。 是否可以仅使用css3,如果不可以,是否有其他方式来设置html样式。请参见此 我使用了onmouseover和onmouseout事件 HTML <div id='bigdiv1'> <div i
#smalldiv1:悬停#smalldiv2{
背景:黄色;}
更准确地说,如何更改一个div悬停在另一个div上的属性,而这两个div分别位于两个包装器中。
是否可以仅使用css3,如果不可以,是否有其他方式来设置html样式。请参见此
我使用了onmouseover
和onmouseout
事件
HTML
<div id='bigdiv1'>
<div id='smalldiv1' onmouseover="chbg('yellow')" onmouseout="chbg('green')">
</div>
</div>
<div id='bigdiv2'>
<div id='smalldiv2'>
</div>
</div>
看到这个了吗
我使用了onmouseover
和onmouseout
事件
HTML
<div id='bigdiv1'>
<div id='smalldiv1' onmouseover="chbg('yellow')" onmouseout="chbg('green')">
</div>
</div>
<div id='bigdiv2'>
<div id='smalldiv2'>
</div>
</div>
在css中,只能更改子元素或其本身的属性
#bigdiv2:hover #smalldiv2{
background:yellow;
}
在这个html结构中,我将使用JavaScript来完成它
var smalldiv1 = document.getElementById('smalldiv1');
var smalldiv2 = document.getElementById('smalldiv2');
smalldiv1.onmouseover = function(event){
smalldiv2.style.backgroundColor = 'yellow';
};
smalldiv1.onmouseout = function(event){
smalldiv2.style.backgroundColor = 'green';
};
在css中,只能更改子元素或其本身的属性
#bigdiv2:hover #smalldiv2{
background:yellow;
}
在这个html结构中,我将使用JavaScript来完成它
var smalldiv1 = document.getElementById('smalldiv1');
var smalldiv2 = document.getElementById('smalldiv2');
smalldiv1.onmouseover = function(event){
smalldiv2.style.backgroundColor = 'yellow';
};
smalldiv1.onmouseout = function(event){
smalldiv2.style.backgroundColor = 'green';
};
假设您可以使用#包装器元素,并且只需要支持现代浏览器,那么纯css解决方案可能涉及指针事件
和剪辑路径
属性
插入的CSS是
#wrapper { position: relative; }
#smalldiv1 {
position: absolute;
z-index: 2;
pointer-events: none;
}
#smalldiv2 {
padding-top: 0px;
position: absolute;
top: 0;
padding-top: 200px;
z-index: 1;
-webkit-clip-path: polygon(100% 0, 100% 33%, 0 33%,
0 66%, 100% 66%, 100% 100%, 100% 100%, 0 100%, 0 0);
clip-path: polygon(100% 0, 100% 33%, 0 33%, 0 66%,
100% 66%, 100% 100%, 100% 100%, 0 100%, 0 0);
}
#smalldiv2:hover {
background-color:yellow;
}
我更改了您的#smalldiv2
的大小,因此现在它的高度是300px,但由于剪辑路径
的缘故,它的红色部分的形状是空的
因此,#smalldiv1
覆盖了#smalldiv2
,但当您悬停第一个指针时,这样定义的光标指针
属性将把悬停
事件传递给底层元素,因此,这就好像你实际上在盘旋#smalldiv2
假设你可以使用一个#包装器元素,并且你只需要支持现代浏览器,一个纯css解决方案可能涉及指针事件
和剪辑路径
属性
插入的CSS是
#wrapper { position: relative; }
#smalldiv1 {
position: absolute;
z-index: 2;
pointer-events: none;
}
#smalldiv2 {
padding-top: 0px;
position: absolute;
top: 0;
padding-top: 200px;
z-index: 1;
-webkit-clip-path: polygon(100% 0, 100% 33%, 0 33%,
0 66%, 100% 66%, 100% 100%, 100% 100%, 0 100%, 0 0);
clip-path: polygon(100% 0, 100% 33%, 0 33%, 0 66%,
100% 66%, 100% 100%, 100% 100%, 0 100%, 0 0);
}
#smalldiv2:hover {
background-color:yellow;
}
我更改了您的#smalldiv2
的大小,因此现在它的高度是300px,但由于剪辑路径
的缘故,它的红色部分的形状是空的
结果是
#smalldiv1
覆盖了#smalldiv2
,但当您悬停第一个时,这样定义的光标指针
属性将悬停
事件传递给底层元素,因此这就好像您实际上在悬停#smalldiv2
,恐怕您不能。只有用Javascript,恐怕你不能。只有使用JavaScription,我对您所提出的解决方案感到非常惊讶,我很高兴我学到了这一点,我想这意味着如果没有这种“幻觉”技巧,我的问题就没有解决方案了?我想知道是否有可能通过使用hover的smalldiv1影响smalldiv2?我想没有?嗯,没有,这个技巧是一个解决办法(如果你想只使用css当然)是的,我确实是纯css的目标,你的这个技巧很好,我相信我会玩它,并希望得到它的最大值,非常感谢!)我对你的解决方案感到非常惊讶,我很高兴我学到了这一点,我想这意味着如果没有这种“幻觉”技巧,我的问题就没有解决方案了?我想知道是否有可能通过使用hover的smalldiv1影响smalldiv2?我想没有?嗯,没有,这个技巧是一个解决办法(如果你想只使用css当然)是的,我确实是纯css的目标,你的这个技巧很好,我相信我会玩它,并希望得到它的最大值,非常感谢!)