Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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 是否可以基于类名在不使用Javascript的情况下更改悬停中的多个元素的外观?_Html_Css_Hover - Fatal编程技术网

Html 是否可以基于类名在不使用Javascript的情况下更改悬停中的多个元素的外观?

Html 是否可以基于类名在不使用Javascript的情况下更改悬停中的多个元素的外观?,html,css,hover,Html,Css,Hover,我在divs中有一个divs的结构,类似于: <div> <div> <div class='a'>Hello</div> <div class='a'>Stack</div> <div>Overflow</div> </div> <div> <div>You</div&g

我在
div
s中有一个
div
s的结构,类似于:

<div>
    <div>
        <div class='a'>Hello</div>
        <div class='a'>Stack</div>
        <div>Overflow</div>
    </div>
    <div>
        <div>You</div>
        <div class='b'>Are</div>
        <div class='b'>The Best</div>
    </div>
    <div>
        <div>Have</div>
        <div class='b'>a nice</div>
        <div>Day !!</div>
    </div>
</div>

你好
堆栈
溢流
你
是
最好的
有
漂亮的
白天
我希望所有
div
s类
a
在其中一个被鼠标悬停时更改背景色。所有
div
s类
b
:当
div
s类
b
中的一个悬停时,所有
div
s类
b
应更改背景色

在没有Javascript的情况下,是否可以实现此行为

如果答案为否:
如果已知所有
div
a类的
div
s在同一级别(即同级)是连续的
div
s,是否可能


如果需要,我还可以在
div
s中添加其他类。

我想不出任何解决方案,除了css父选择器(据我和谷歌所知,它们并不存在)。如果有类似的情况,您可以选择悬停元素的顶级父元素,然后选择该顶级元素中类的所有元素(看起来像
.a
)-但是,如上所述,这个选择器不存在,所以对你的问题的答案是:不。没有Javascript就不行。CSS选择器旨在将样式分别应用于与选择器匹配的每个元素,因此设计上不会出现这种情况

来源 在没有容器的简单情况下,您可以使其“半工作”:

<div>
  <div class='a'>Hello</div>
  <div class='a'>Stack</div>
  <div>Overflow</div>
  <div class='b'>Are</div>
  <div class='b'>The Best</div>
  <div>Have</div>
  <div class='b'>a nice</div>
  <div>Day !!</div>
</div>

不过,我无法想出一种方法,仅通过CSS就可以完全处理您的场景。我倾向于其他人所说的现在不可能(即使是在简化的情况下)。

好的。谢谢你觉得简化版怎么样?(只是添加了它)我认为简单化版本也不可能使用纯css——同样的问题。您必须使用js。问题是我无法更改结构(无法删除
div
s),所以我想我必须使用Javascript来完成这项工作(这并不太糟糕……我只是对非js解决方案感到好奇)。@Misha-啊,好吧。是的,看起来你必须这么做,但我为你在不得不求助于CSS解决方案之前寻找CSS解决方案而喝彩。
div.b:hover, div.b:hover ~ div.b {
    background-color:#CCCCCC;
}