CSS3 - 悬停显示不同元素

发布于 2024-12-03 09:53:27 字数 274 浏览 0 评论 0原文

是否可以有纯CSS(不是JavaScript):

<ul>
  <li>a</li>
  <li>b</li>
</ul>

<div id="x" style="display:none;">c</div>

当我悬停

  • 时显示
  • is it possible to have purely css (not javascript) this:

    <ul>
      <li>a</li>
      <li>b</li>
    </ul>
    
    <div id="x" style="display:none;">c</div>
    

    Display the <div> when I hover a <li>?

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(3

    情话已封尘 2024-12-10 09:53:27

    li 元素位于该 ul 中,因此无法再从 li:hover 访问 #x。因此,如果您必须仅在 li 元素上实现悬停效果,则需要 JavaScript。

    如果没有,您可以这样做:

    /* Or ul:hover ~ #x if there are any other elements between them */
    ul:hover + #x {
        display: block;
    }
    

    但是光标可以位于 ul 本身的任何位置,以便显示 #x,而不是直接位于任何 li 上,这并不完全是您想要的,除非您的 li 占据了整个 ul 区域。

    The li elements are in that ul, so #x is no longer reachable from li:hover. So if you must have the hover effect only on the li elements, you'll need JavaScript.

    If not, you could do this instead:

    /* Or ul:hover ~ #x if there are any other elements between them */
    ul:hover + #x {
        display: block;
    }
    

    But the cursor can be anywhere on the ul itself for #x to show up, rather than being directly on any li, which isn't quite what you want unless your lis take up the entire ul area.

    黑色毁心梦 2024-12-10 09:53:27

    几乎但 li 不是 div#x 的 相邻兄弟 他们如果您将 div 放置在 ul 元素内,则会出现这种情况。

    <style>
    ul:hover + #x {
        display:none;
    }
    </style>
    
    <ul>
      <li>a</li>
      <li>b</li>
    </ul>
    
    <div id="x">c</div>
    

    Almost but li are not a Adjacent sibling for div#x They would be if you placed the div inside the ul element.

    <style>
    ul:hover + #x {
        display:none;
    }
    </style>
    
    <ul>
      <li>a</li>
      <li>b</li>
    </ul>
    
    <div id="x">c</div>
    
    转瞬即逝 2024-12-10 09:53:27

    我认为你需要使用 JavaScript,因为“div”在列表之外。

    I think you need to go with JavaScript as the "div" is outside the list.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文