You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现div hover时显示隐藏<a>元素的技术方案咨询

实现鼠标悬停容器时显示隐藏的元素

你可以通过纯CSS实现这个交互效果,不需要额外JavaScript,步骤如下:

1. 编写核心CSS样式

默认隐藏.div-for-listing容器内的<a>元素,当鼠标悬停在容器上时,将它们设置为可见:

/* 默认隐藏容器内的a元素 */
.div-for-listing a {
    display: none;
}

/* 鼠标悬停容器时显示a元素 */
.div-for-listing:hover a {
    display: inline-block; /* 可根据布局需求换成inline */
}

2. 修正HTML的id重复问题

注意你的循环代码里,每个删除按钮的<i>标签都用了相同的id="delete-button",而HTML中id必须唯一,建议改成class避免冲突:

<div class="task-list">
  <ul>
    {% for i in list %}
    <li class="todo-listing">
      <div class="div-for-listing">
        <form class="form-list" action="{{url_for('to_do_list')}}" method="post">
          <input class="checkbox-list" type="checkbox" id="list-{{i.id}}" name="list-{{i.id}}" value="ongoing" onclick="toggle_check()">
          <label class="todo-listing-data" for="list-{{i.id}}"> {{i.task}}</label>
          <a href=""></a>
          <!-- 将id改为class,避免重复 -->
          <a href="#"><i class="fa-sharp fa-solid fa-xmark delete-button"></i></a>
          <br>
        </form>
      </div>
    </li>
    {% endfor %}
  </ul>
</div>

3. 可选:只显示特定的元素

如果你只想显示删除按钮对应的<a>,可以调整CSS选择器,精准定位目标元素:

方案一:使用:has()伪类(现代浏览器支持)

.div-for-listing a:has(.delete-button) {
    display: none;
}

.div-for-listing:hover a:has(.delete-button) {
    display: inline-block;
}

方案二:给目标单独加class(兼容所有浏览器)

先修改HTML:

<a href="#" class="delete-link"><i class="fa-sharp fa-solid fa-xmark"></i></a>

再写对应CSS:

.div-for-listing .delete-link {
    display: none;
}

.div-for-listing:hover .delete-link {
    display: inline-block;
}

这种纯CSS方案性能高、代码简洁,完全满足你的交互需求。

内容的提问来源于stack exchange,提问作者Mars

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:20:29