hero图片
Hero section 背景图的推荐尺寸通常是:
桌面端(Desktop)推荐尺寸
- 最常用:1920 × 1080px(16:9 比例)或 1920 × 600–800px(较矮的 banner 式,更利于内容置于首屏)。
- 平衡推荐:1600 × 500px 或 1600–2500 × 500–900px(宽高比约 2:1 到 16:9)。
- 高分辨率/Retina:可准备 2560 × 1440px 左右,但需严格优化文件大小。
为什么这个尺寸?
1920px 宽度能覆盖大多数桌面显示器(常见分辨率 1920px 宽),高度根据设计灵活调整(Hero 通常不需要全屏高度,避免用户滚动过多)。
移动端(Mobile)推荐尺寸
- 800 × 1200px(竖版,约 2:3 比例)或类似。
- 移动端 Hero 往往需要单独准备图片,因为横版大图在手机上会被严重裁剪或失焦。
通用建议
- 宽高比:优先 16:9 或 2.5:1 ~ 3:1(横向 banner 风格),这样在不同屏幕上拉伸/裁剪效果更好。
- 文件大小:强烈控制在 < 200–500KB(最好 < 100–300KB),超过会严重影响加载速度(Core Web Vitals 重要指标)。使用 WebP 格式优先,其次 JPG。
- 最小宽度:不要低于 1200–1600px,否则大屏会模糊。
如何引入页面(HTML + CSS 最佳实践)
最推荐方式:使用 CSS background-image(性能好、响应式强):
<section class="hero">
<div class="hero-content">
<h1>你的标题</h1>
<p>副标题或描述</p>
<button>行动按钮</button>
</div>
</section>
.hero {
position: relative; /* 便于叠加内容 */
min-height: 500px; /* 或 60vh、100vh,根据需要 */
background-image:
linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), /* 可选暗化遮罩 */
url('hero-image.jpg');
background-size: cover; /* 关键:铺满且保持比例 */
background-position: center; /* 居中显示,重要主体不会被裁掉 */
background-repeat: no-repeat;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
color: white;
}
/* 响应式优化 */
@media (max-width: 768px) {
.hero {
min-height: 400px; /* 手机上适当调矮 */
background-image:
linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),
url('hero-mobile.jpg'); /* 可切换移动端图片 */
}
}
其他实现方式
<img>标签 + 绝对定位:适合需要object-fit: cover的情况,或 SEO 更友好(可加 alt)。<picture>元素:实现艺术方向响应式(不同屏幕用不同图片):<picture>
<source media="(max-width: 768px)" srcset="mobile.jpg">
<img src="desktop.jpg" alt="Hero" style="width:100%; height:auto; object-fit:cover;">
</picture>- 现代框架(Tailwind、Bootstrap 等):通常有内置
.hero或bg-cover类。
性能优化技巧
- 使用 WebP + fallback JPG。
- 懒加载(
loading="lazy")或优先加载 Hero 图(<link rel="preload">)。 - 压缩工具:TinyPNG、Squoosh、ImageOptim。
- 考虑 LCP(Largest Contentful Paint):Hero 图是首屏最大元素,必须优化。
- 暗化遮罩(linear-gradient)让文字更容易阅读。
总结推荐起步尺寸:
桌面 1920×700px 左右(16:9 或更宽扁),移动 800×1000+px,文件 < 300KB,用 background-size: cover + center 即可获得不错效果。
如果你使用特定框架(如 WordPress、Webflow、Vue/React),我可以给出更针对性的代码!