概念:响应式布局

响应式布局是一种使网页在不同设备和屏幕尺寸下都能良好展示的技术,通过一套代码适配多种屏幕。

解决的问题:移动端、平板、桌面等多种设备的不同屏幕尺寸适配


核心命题

  • 响应式三要素
    • 弹性图片:图片随容器缩放
    • 媒体查询:针对不同断点设置样式
    • 弹性布局:Flexbox/Grid 自适应
  • 移动优先 vs 桌面优先
    • 移动优先:min-width 小到大
    • 桌面优先:max-width 大到小

运行机制

flowchart LR
    A[Viewport] --> B{屏幕宽度?}
    B -->|320px| C[移动端样式]
    B -->|768px| D[平板样式]
    B -->|1024px+| E[桌面样式]
    C --> F[响应式渲染]
    D --> F
    E --> F

核心实现方式

1. 视口 meta 标签

<meta name="viewport" content="width=device-width, initial-scale=1.0">

2. 媒体查询

/* 移动优先 */
body {
  font-size: 16px;
}
 
@media (min-width: 768px) {
  body { font-size: 18px; }
}
 
@media (min-width: 1024px) {
  body { font-size: 20px; }
}

3. 弹性单位

/* rem 相对于根元素 */
.container { width: 100%; }
/* vw/vh 相对于视口 */
.full-screen { height: 100vh; }

4. Flexbox 布局

.container {
  display: flex;
  flex-wrap: wrap;
}
.item {
  flex: 1 1 300px; /* 自适应 */
}

5. Grid 布局

.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

常见断点

设备断点描述
手机< 576px小屏设备
平板576px - 992px中等屏幕
笔记本992px - 1200px大屏幕
桌面> 1200px超大屏幕

与自适应的区别

维度响应式布局自适应布局
原理一套代码,多尺寸适配多套代码,按设备切换
设计移动优先渐进增强/优雅降级
维护统一维护多套维护

知识图谱


参考延伸

  • MDN: Responsive design
  • CSS Tricks: Responsive Web Design