【问题标题】:CSS On hover show another elementCSS On hover 显示另一个元素
【发布时间】:2013-09-15 22:55:15
【问题描述】:

当我将鼠标悬停在 div id='a' 上时,我想使用 CSS 显示 div id='b',但我不知道该怎么做,因为 div 'a' 在另一个 div 中,而 div 'b' 不在其中。

<div id='content'>
     <div id='a'>
         Hover me
     </div>
</div>
<div id='b'>
    Show me
</div>

【问题讨论】:

  • 除非你 1) 改变你的标记以具有嵌套/父/祖先关系,2) 使用 javscript/jquery
  • 使用 CSS 做到这一点的唯一方法是它们是嵌套的。
  • 谢谢,只是需要确认一下。
  • @Jawad 从另一个用户的个人资料中借来的。觉得它在当今世界是适当和必要的。 =}

标签: html css hover


【解决方案1】:

我们可以像这样在悬停时显示相同的标签 div

<style>
#b {
    display: none;
}

#content:hover~#b{
    display: block;
}

</style>

【讨论】:

【解决方案2】:

下面的代码确实可以

 <div href="#" id='a'>
     Hover me
 </div>

<div id='b'>
    Show me
</div>

和css

#a {
  display: block;
}

#a:hover + #b {
  display:block;
}

#b {
  display:none;
  }

现在通过将鼠标悬停在元素#a 上显示元素#b。

【讨论】:

    【解决方案3】:

    您可以为此使用 axe 选择器。

    有两种方法:

    1。直接父 ax 选择器 (&lt;)

    #a:hover < #content + #b
    

    axe 样式规则将选择#b,它是#content 的直接兄弟,#a 的直接父级具有:hover 状态。

    div {
    display: inline-block;
    margin: 30px;
    font-weight: bold;
    }
    
    #content {
    width: 160px;
    height: 160px;
    background-color: rgb(255, 0, 0);
    }
    
    #a, #b {
    width: 100px;
    height: 100px;
    line-height: 100px;
    text-align: center;
    }
    
    #a {
    color: rgb(255, 0, 0);
    background-color: rgb(255, 255, 0);
    cursor: pointer;
    }
    
    #b {
    display: none;
    color: rgb(255, 255, 255);
    background-color: rgb(0, 0, 255);
    }
    
    #a:hover < #content + #b {
    display: inline-block;
    }
    <div id="content">
    <div id="a">Hover me</div>
    </div>
    
    <div id="b">Show me</div>
    
    <script src="https://rouninmedia.github.io/axe/axe.js"></script>

    2。远程元素斧头选择器 (\)

    #a:hover \ #b
    

    axe 样式规则将选择#b,它与#a 存在于同一文档中,:hover 状态。

    div {
    display: inline-block;
    margin: 30px;
    font-weight: bold;
    }
    
    #content {
    width: 160px;
    height: 160px;
    background-color: rgb(255, 0, 0);
    }
    
    #a, #b {
    width: 100px;
    height: 100px;
    line-height: 100px;
    text-align: center;
    }
    
    #a {
    color: rgb(255, 0, 0);
    background-color: rgb(255, 255, 0);
    cursor: pointer;
    }
    
    #b {
    display: none;
    color: rgb(255, 255, 255);
    background-color: rgb(0, 0, 255);
    }
    
    #a:hover \ #b {
    display: inline-block;
    }
    <div id="content">
    <div id="a">Hover me</div>
    </div>
    
    <div id="b">Show me</div>
    
    <script src="https://rouninmedia.github.io/axe/axe.js"></script>

    【讨论】:

    • github.com/RouninMedia/axe 这是什么?这不受官方支持,但这是您的项目
    • 是的,这是一项正在进行的工作。一个概念证明,如果你愿意的话。
    • 这是正确的答案,因为它仅在 #b 悬停时显示元素,而不是单独显示 #content
    • @Rounin 做得很好。你的图书馆帮了大忙。我会更多地研究它。我也很乐意成为持续成功的一部分。如果有什么我可以帮忙的;请告诉我。
    • 你很友善,@Olamigoke Philip。目前大约完成了 33%(老实说,自 2017 年 1 月至 2 月以来,我还没有真正参与过它)。如果一切顺利,我计划在 2021 年推进 axe。尤其是我想显着推进 axeBlades 扩展。
    猜你喜欢
    • 2014-11-22
    • 1970-01-01
    • 2019-09-19
    • 2013-04-18
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2021-10-30
    • 2016-11-03
    相关资源
    最近更新 更多