背景图需用 background-size: cover 防拉伸、background-color 降级防白屏、WebP 格式提性能;文字叠加须用 text-shadow 或 backdrop-filter 保可读性;响应式优先用 clamp() 控制字号,手机端禁用 fixed 视差;布局推荐 Grid 提升扩展性,gap 替代 margin 降低维护成本。
直接用 background-image 没问题,但多数人栽在尺寸和加载行为上。默认会平铺,高清图缩放后边缘模糊,滚动时还可能闪烁。关键不是“能不能加”,而是“加完用户看到的是不是你想要的”。
background-size: cover 确保填满容器且不形变,但注意裁剪——人物脸被切掉是常见翻车点background-attachment: fixed 做视差效果很酷,但在 iOS Safari 和部分安卓 WebView 里会强制重绘导致卡顿,建议只在桌面端启用(可用 @supports 检测)background-color 作为降级色,否则图片加载失败时白屏;推荐用主图 dominant color(比如用 color-thief 提取或手动挑)<picture> + srcset 可选配响应式尺寸,但名片页通常只一个视口,一张 1200px 宽的 WebP 足够不是加个 color: white 就完事。背景图明暗不一,局部有高光/阴影,纯白字在亮区直接消失,黑字在暗区融进背景。核心是控制对比度和视觉层叠逻辑。
text-shadow: 0 2px 4px rgba(0,0,0,0.5) 给浅色区域加柔边投影,或用 backdrop-filter: blur(2px) 在文字背后加毛玻璃遮罩(注意兼容性,Safari 需 -webkit-backdrop-filter)position: relative,否则文字会相对整个 viewport 定位,一改布局就飘走z-index 拼图式堆叠——名片信息流本就是线性结构,用 flex 或 grid 控制顺序更稳<div> 包裹而非 <br>,方便后续加动画或媒体查询断点很多人写完 PC 版,手机一开发现图被压缩成条状、文字堆成一团、点击区域小到点不准——问题不在“没写 media query”,而在没想清楚内容优先级和触控友好性。
background-attachment: fixed,它在移动端既无意义又耗性能background-position: center center 确保焦点人物/LOGO 始终居中,比 top left 更安全px,改用 rem 或 clamp(1.2rem, 4vw, 1.8rem),让标题在小屏不撑破容器、大屏不显得单薄tel: 和 mailto: 协议链接,iOS/Android 点击直接唤起拨号或邮件客户端,这是名片页最实用的交互够用,但 Grid 更省心。Flex 适合一维排列(比如横向导航或竖向信息流),而名片页本质是二维网格:头像+姓名在上,职位居中,联系方式在下,还要留呼吸感。Grid 的 grid-template-areas 能一眼看清结构。
立即学习“前端免费学习笔记(深入)”;
display: flex; flex-direction: column; + align-items: center 已能覆盖 80% 场景display: grid; grid-template-areas: "avatar" "name" "title" "contact";,每个区域用 grid-area 指定,后期加社交图标、二维码时扩展性更强grid-template-columns: 1fr 和 Flex 几乎没区别,此时代码简洁更重要gap 属性:用 gap: 1.5rem 替代每个元素的 margin-bottom,删除某一项时不会漏掉清 margin,维护成本更低背景图再好看,加载慢也会让用户划走;文字排版再精致,没加 tel: 链接就等于没留联系方式。做名片页不是拼视觉参数,而是确保关键信息在 1 秒内可读、可点、可识别。