Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html CSS3-从一个div悬停到另一个div_Html_Css_Hover_Nested - Fatal编程技术网

Html CSS3-从一个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

我不知道当鼠标悬停在另一个div的子对象上时,如何或者甚至可能更改一个div的子对象的属性

这是一个例子。


#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的目标,你的这个技巧很好,我相信我会玩它,并希望得到它的最大值,非常感谢!)