hover事件无响应,设置visibility:hidden的删除图标无法悬停显示如何解决
问题原因
你当前的写法存在核心逻辑错误:你将.delete-modal元素默认设置为visibility: hidden,隐藏状态的元素无法接收鼠标交互事件,自然无法触发自身的:hover伪类,所以永远不会变为可见状态。你尝试用display: none/display: block切换不生效也是同一个原因。
这个问题和你用i标签还是a标签无关,不需要修改标签类型。
解决方案
- 首先给包裹所有banner内容(包括你写的竖线、文本、按钮、以及删除
i标签)的外层父容器添加类名,比如banner-card,同时给这个父容器设置position: relative,确保删除按钮的绝对定位是相对当前banner容器生效,不会整体偏移。
.banner-card { position: relative; }
- 修改你的hover触发逻辑:改为鼠标悬停在父容器上时,显示子元素删除按钮:
.delete-modal{ cursor: pointer; position: absolute; bottom: 80%; left: 91%; z-index: 1000; visibility: hidden; } /* 父容器hover时控制子元素显示 */ .banner-card:hover .delete-modal{ visibility: visible; }
内容的提问来源于stack exchange,提问作者Rafaela Machado
相关产品推荐
相关产品推荐

