Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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 CSS:过渡元素不会影响其他元素_Html_Css_Css Transitions - Fatal编程技术网

Html CSS:过渡元素不会影响其他元素

Html CSS:过渡元素不会影响其他元素,html,css,css-transitions,Html,Css,Css Transitions,我想做这个过渡效果,但它只对第一个div有效,在周一,它旨在影响第一个div,什么都没有发生 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>test</title> <style type="text/css"> #firstElement:hover + #secondE

我想做这个过渡效果,但它只对第一个div有效,在周一,它旨在影响第一个div,什么都没有发生

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<style type="text/css">
    #firstElement:hover + #secondElement {
    color:red;
    }
    #secondElement:hover + #firstElement {
    color:blue;
    }
</style>
</head>
<body>
    <p id="firstElement">Hover</p>
    <p id="secondElement">Hello</p>
</body>
</html>

测试
#第一个元素:悬停+第二个元素{
颜色:红色;
}
#第二个元素:悬停+第一个元素{
颜色:蓝色;
}

悬停

您好


首先,您需要将
转换设置为如下元素(如果您指的是转换而不是悬停):

#firstElement:hover + #secondElement {
    color:red;
    transition:color 0.5s ease;  /* this is an example  */
}

#secondElement:hover + #firstElement {   /*  this is not right selector  */
    color:blue;
    transition:color 0.5s ease;  /* this is an example  */
}
第二,CSS中并没有后退,只需将鼠标悬停在第一个元素上,即可更改第二个元素的颜色

为此,可以使用jQuery

使用以下JQuery代码:

$("#secondElement").hover(function(){
    $("#firstElement").toggleClass("firstcolor");
});
并添加以下CSS:

.firstcolor{
    color:blue;
}


注意:这不是唯一的方法

首先,您需要将
转换
(如果您的意思是转换而不是悬停)设置为如下元素:

#firstElement:hover + #secondElement {
    color:red;
    transition:color 0.5s ease;  /* this is an example  */
}

#secondElement:hover + #firstElement {   /*  this is not right selector  */
    color:blue;
    transition:color 0.5s ease;  /* this is an example  */
}
第二,CSS中并没有后退,只需将鼠标悬停在第一个元素上,即可更改第二个元素的颜色

为此,可以使用jQuery

使用以下JQuery代码:

$("#secondElement").hover(function(){
    $("#firstElement").toggleClass("firstcolor");
});
并添加以下CSS:

.firstcolor{
    color:blue;
}


注意:这不是唯一的方法

psuedo悬停效果仅适用于父子关系

因此,如果你有一个菜单,其中玩具是父母,芭比娃娃、汽车卡车和乐高积木是三个子元素,那么你可以学习psuedo课程

例如,如果你这样做了

#toys:hover #barbiedolls { background: red; } 
那就行了。但是如果你试着去做

#barbiedolls:hover #toys { background: red; } 
那是行不通的。也不会

#barbiedolls:hover #cartrucks { background: red; }

psuedo悬停效果仅适用于父子关系

因此,如果你有一个菜单,其中玩具是父母,芭比娃娃、汽车卡车和乐高积木是三个子元素,那么你可以学习psuedo课程

例如,如果你这样做了

#toys:hover #barbiedolls { background: red; } 
那就行了。但是如果你试着去做

#barbiedolls:hover #toys { background: red; } 
那是行不通的。也不会

#barbiedolls:hover #cartrucks { background: red; }

相邻同级选择器具有以下语法:E1+E2,其中E2是选择器的主题。如果E1和E2在文档树中共享同一父级,并且E1紧跟在E2之前,忽略非元素节点(例如文本节点和注释),则选择器匹配

这意味着
#firstElement
#secondElement
之前,因此它可以工作

但是
#secondElement
不在
#firstElement
之前,因此它不起作用

相邻同级选择器具有以下语法:E1+E2,其中E2是选择器的主题。如果E1和E2在文档树中共享同一父级,并且E1紧跟在E2之前,忽略非元素节点(例如文本节点和注释),则选择器匹配

这意味着
#firstElement
#secondElement
之前,因此它可以工作


但是
#secondElement
不在
#firstElement
之前,因此它不起作用。

从其他答案中应该可以清楚地看出这不起作用的原因。这里有一个解决方案

<div id="elements">
    <p id="firstElement">Hover</p>
    <p id="secondElement">Hello</p>
</div>

从其他答案中应该可以清楚地看出为什么这不起作用。这里有一个解决方案

<div id="elements">
    <p id="firstElement">Hover</p>
    <p id="secondElement">Hello</p>
</div>

您真的不需要为此使用javascript@Jasny ArnoldDaniels我没有说“需要”,我说你“可以”使用JQuery。您的解决方案需要在HTMLY中进行一些更改,您真的不需要为此使用javascript@Jasny ArnoldDaniels我没有说“需要”,我说你“可以”使用JQuery。您的解决方案需要在HTMLglad中进行一些更改,您可以使用CSS方法对HTML进行一些更改,并学到了一些东西+谢谢你!就这样!我会用这个,因为我不能用JavaScriptHigh,很高兴你用CSS的方式对HTML进行了一些修改,学到了一些东西+谢谢你!就这样!我将使用它,因为我不能使用JavaScript