CSS 尺寸与响应式(2025-2026 主流实用版)
重点:媒体查询、断点策略、流式布局、视口单位、容器查询、响应式图片/视频
目标:写出移动优先、维护性好、性能友好的响应式页面
1.1 移动优先(Mobile First)写法 —— 目前最推荐
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| .container { padding: 1rem; font-size: 1rem; }
@media (min-width: 768px) { .container { padding: 2rem; max-width: 720px; margin: 0 auto; } }
@media (min-width: 1024px) { .container { max-width: 960px; } }
@media (min-width: 1280px) { .container { max-width: 1200px; } }
|
1.2 2025-2026 主流断点策略推荐(Tailwind / 大厂常用)
| 设备/场景 |
常用断点(min-width) |
Tailwind 对应 |
建议用途 |
| 手机 |
—(默认) |
— |
基础样式 |
| 平板竖屏/小桌面 |
640px / 768px |
sm / md |
两列布局开始 |
| 桌面 |
1024px / 1200px |
lg / xl |
三列/内容区域变宽 |
| 大桌面/电视 |
1280px / 1536px |
2xl |
超宽布局、展示型页面 |
最常用折中方案(强烈推荐):
1 2 3 4
| @media (min-width: 640px) { ... } @media (min-width: 768px) { ... } @media (min-width: 1024px) { ... } @media (min-width: 1280px) { ... }
|
2. 流式布局 + 视口单位(最核心的响应式手段)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| .container { width: 100%; max-width: 1200px; min-width: 320px; margin: 0 auto; }
html { font-size: clamp(14px, 2.5vw + 0.5rem, 18px); }
h1 { font-size: clamp(1.8rem, 5vw + 1rem, 4rem); }
|
常用视口单位对比表:
| 单位 |
含义 |
优点 |
缺点/注意点 |
推荐场景 |
| vw |
视口宽度 1% |
真正全屏响应 |
键盘弹出/滚动条会影响 |
大标题、横幅、Hero |
| vh |
视口高度 1% |
适合全屏模块 |
移动端浏览器工具栏问题严重 |
全屏轮播、首屏高度 |
| vmin |
vw/vh 中较小值 |
保持比例(正方形常用) |
— |
头像、正方形卡片 |
| vmax |
vw/vh 中较大值 |
— |
很少用 |
— |
| % |
相对父元素 |
稳定、可预测 |
需要父元素有明确尺寸 |
布局、padding、margin |
3. 容器查询(Container Queries)—— 2024年后逐渐成为主流
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| .card-list { container-type: inline-size; container-name: cardlist; }
@container (min-width: 500px) { .card { flex-direction: row; align-items: center; } }
@container cardlist (min-width: 720px) { .card { max-width: 45%; } }
|
4. 响应式图片与视频最佳实践
4.1 图片响应式核心技巧
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <!-- 推荐写法(2025-2026 标配) --> <img src="low-res.jpg" srcset=" low-res.jpg 320w, mid-res.jpg 640w, high-res.jpg 1024w, ultra-high.jpg 1600w " sizes="(max-width: 480px) 100vw, (max-width: 768px) 50vw, 33vw" alt="描述" loading="lazy" decoding="async" >
|
4.2 常用 object-fit 组合
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| .cover-img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.contain-img { object-fit: contain; }
.fill-img { object-fit: fill; }
|
4.3 响应式视频
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| .video-wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.video-wrapper iframe, .video-wrapper video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
|