【问题标题】:Making two other div's change color when hovering over main div将鼠标悬停在主 div 上时使其他两个 div 改变颜色
【发布时间】:2022-05-06 07:03:59
【问题描述】:

我有 3 个 div。当我将鼠标悬停在“main”/“first” div 上时,我想更改其中 2 个 div 中的一些内容。我真的,真的在这里试图避免使用任何 Javascript/jQuery。

我很确定这是可以做到的,我隐约记得不久前读过它,但我无法再次找到链接,而且我之前的搜索也没有帮助,可能是因为我可能没有使用正确的术语。

这是code: HTML:

<div id=one></div>
<div id=two></div>
<div id=three></div>

CSS:

#one{background-color:blue;width:50px;height:50px;float:left;}
#two{background-color:green;width:50px;height:50px;float:left;}
#three{background-color:red;width:50px;height:50px;float:right;}

#one:hover > #two + #three { background-color: yellow; }

有人可以帮忙吗?当我将鼠标悬停在第一个上时,如何让其他 两个 div 改变颜色?

【问题讨论】:

    标签: html css layout


    【解决方案1】:

    你的意思是这样吗?

    Fiddle

    #one:hover ~ #two , 
    #one:hover ~ #three  
    { background-color: yellow; }
    

    问题是 &gt; 意味着它是直接后代选择器,并且选择器与 + 的组合将不起作用。

    【讨论】:

    • 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!谢谢!!!!!!!!!!!!!!!!!!太棒了!现在我的偏头痛应该很快就会消失:-D
    • @psl 我的问题是你有 2 个 div,你悬停在一个上,两个 div 都会突出显示,然后你将鼠标悬停在另一个上,两个 div 都会突出显示。但在你的情况下,只有第一部分正在发生!你能给我一个解决方案吗?
    • 为什么切换两个div的顺序会失败?
    【解决方案2】:

    你有两件事要知道。

    首先,您不能在一个“规则”中通过 id 选择 2 个元素,您需要使用逗号。

    其次,&gt; 是指 的子级和 + 的旁边。所以你的规则意味着:

    #one
        #two //Children of #one
        #three //the selected one (children on #one)
    

    你的规则应该是这样的:

    #one:hover ~ #two, #one:hover ~ #three { background-color: yellow; }
    

    【讨论】:

    • 非常感谢您的解释!现在我知道那些脏东西的真正含义了:-)
    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多