如何用css制作悬停特效图片

使用:hover伪类配合transition实现图片悬停变亮、放大和加阴影效果,通过filter、transform和box-shadow属性提升交互视觉层次。

想让图片在鼠标悬停时有视觉反馈,比如变亮、放大或加阴影,用CSS就能轻松实现。关键在于利用 :hover 伪类选择器,配合过渡动画让效果更自然。

基础悬停:图片变亮

通过调整透明度或亮度,可以让图片在悬停时显得更清晰。

使用 filter 属性控制图像滤镜:
  • 默认状态设置 filter: brightness(80%); 让图片稍暗
  • 悬停时取消滤镜:img:hover { filter: brightness(100%); }
  • 加上 transition: filter 0.3s ease; 实现渐变过渡

缩放效果:轻微放大图片

让用户感觉图片“浮起”,增强交互感。

利用 transform 和 transform-origin 控制缩放行为:
  • 给 img 设置 transform-origin: center; 确保从中心放大
  • 默认 transform: scale(1); 悬停时 img:hover { transform: scale(1.05); }
  • transition 加上 transform 属性,例如 0.3s ease-out

添加阴影和边框

提升层次感,适合卡片式布局中的图片。

通过 box-shadow 和 border 实现立体效果:
  • 默认 box-shadow: none; border: 2px solid transparent;
  • img:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.15); border-color: #007bff; }
  • 同样添加 transition 支持多个属性,如:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1)

组合效果示例

把亮度、缩放和阴影结合起来,打造更丰富的悬停体验。

完整代码片段参考:
img {
  display: block;
  max-width: 100%;
  border-radius: 8px;
  filter: brightness(90%);
  transform-origin: center;
  transition: all 0.3s ease-out;
}

img:hover {
  filter: brightness(100%);
  transform: scale(1.03);
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
}
基本上就这些,不复杂但容易忽略细节。只要合理使用 :hover 和 transition,再搭配 filter、transform、box-shadow 等属性,就能做出专业又流畅的图片悬停效果。