CSS:在悬停状态下重新定位元素但保持可点击区域位置

标签 css hover positioning

我正在尝试创建一个按钮的效果,该按钮在滚动时从页面上“抬起”。

使用 CSS,我有一个 block 样式 <a>元素,当悬停时,将自身重新定位到左侧5px,并在后面留下阴影:

a { 
    display: inline-block;
    position: relative;    }

a:hover {
    top: -5px; left: -5px;
    box-shadow: rgba(0,0,0,.2) 5px 5px 2px;    }

问题:<a>在悬停期间 block 跳离光标 5px,光标实际上不再悬停在 block 上,然后当光标仅稍微移动后 block 跳回。

如何保持原来的悬停区域,使元素在光标轻微移动时不会一直来回跳动?

如果可能的话,我想避免在我的代码中添加多余的容器元素。

最佳答案

实现此目的的一种方法是使用多余的元素(透明图像或大尺寸的父 div)。当用户将鼠标悬停在图像上时,使用后代/子选择器要求子元素“跳跃”。这可能仅适用于最新的浏览器。如果您正在考虑跨浏览器兼容性,使用 javascript 可能是正确的方法。

关于CSS:在悬停状态下重新定位元素但保持可点击区域位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9901475/

相关文章:

r - 在 R 中单击另一个绘图更改绘图的限制

html - 缩放元素(和背景),但不缩放内容

html - 相对定位元素而不占用文档流中的空间

css - 如何让这个 css 在 Chrome 中正确显示?

jquery - 如何使用 jquery/css 选择包含特定单词的 anchor

css - 将 CSS onhover 更改为 onclick

html - Position Absolute 如何使其居中,无论以何种屏幕分辨率查看?

javascript - 如何使用点击事件jquery处理模糊事件

jquery - 使循环的 div 背景淡入不同的颜色

html - 相对位置和绝对位置不能正常工作