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

HTML/CSS hover首个礼物图片向下弹出偏移样式问题求助

问题根因

第一个礼物模块hover时向下错位,是因为你在#gift-img-happy:hover样式中直接修改了元素的固定宽高:默认状态下礼物盒是400px宽、400px高,hover时被改成500px宽、500px高。
由于块级元素设置margin: 0 auto仅能实现水平居中,垂直方向默认以元素顶部为基准对齐,高度增加的100px会全部向元素下方延伸,直接挤占下方文档流空间,就出现了向下弹出的错位效果。
另外你的HTML代码存在语法问题:嵌套了两层<head>标签,虽然浏览器会自动容错,但不符合规范。

修复步骤
  1. 调整礼物盒基础样式,把max-width改为固定width,避免尺寸计算异常,同时增加过渡属性优化交互手感:
.gift-img {
    margin: 20px auto;
    width: 400px;
    height: 400px;
    border: 6px solid white;
    border-radius: 10px;
    background-image: url("9k=(1).jpg");
    background-size: cover;
    transition: all 0.3s ease;
}
  1. 把hover状态下直接改宽高的逻辑,换成transform: scale()实现放大效果。transform属性仅做视觉层面的缩放,不会改变元素在文档流中的实际占位,不会引发布局错位:
#gift-img-happy:hover {
    background-image: url("Happy-birthday-GIF-pics.gif");
    transform: scale(1.25);
}

#gift-img-cheers:hover {
    background-image: url("birthday-beerthday.gif");
}
  1. 修正HTML结构错误,删除嵌套的多余<head>标签,头部区域只保留一层<head>包裹元信息、样式和字体引入代码即可。
补充说明

用scale实现的放大效果和你原本想要的500px尺寸视觉效果完全一致,还不会挤压下方其他礼物模块的位置,配合过渡属性,hover切换的过程会更顺滑,没有生硬的跳动感。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:09:14