一套代码从移动端到PC端,不同屏幕下的适配经验分享1:媒体查询从小往大写

24 阅读2分钟

媒体查询"从小往大写"(Mobile First)的好处

核心优势

  1. 性能优化 - 移动端优先加载
  • 移动设备先加载基础样式(通常更简单、代码量更少)
  • 只有在屏幕足够大时才加载额外的复杂样式
  • 减少移动端不必要的CSS解析和渲染
  1. 渐进增强策略
  • 从最基础的功能开始构建
  • 逐步为更强大的设备添加增强功能
  • 保证所有设备都能获得可用的基础体验
  1. 代码更简洁清晰
  • 移动端布局通常是单列、堆叠式,样式更简单
  • 避免大量的样式重置和覆盖
  • 减少 !important 的使用
  1. 符合当前使用趋势
  • 移动端流量已占主导地位
  • 优先保证移动端体验
  • 降低移动端的加载和渲染成本
  1. 更好的可维护性
  • 从简单到复杂的逻辑更容易理解
  • 减少样式冲突和覆盖问题
  • 调试更容易(基础样式清晰)

代码对比示例

❌ 从大到小(Desktop First)- 不推荐

/* 默认:桌面端样式(复杂) */
.container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  padding: 60px;
  font-size: 18px;
}

/* 平板 */
@media (max-width: 1024px) {
  .container {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 40px;
    font-size: 16px;
  }
}

/* 手机 */
@media (max-width: 768px) {
  .container {
    grid-template-columns: 1fr;
    gap: 15px;
    padding: 20px;
    font-size: 14px;
  }
}

✅ 从小到大(Mobile First)- 推荐

/* 默认:移动端样式(简单、基础) */
.container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
  padding: 20px;
  font-size: 14px;
}

/* 平板及以上 */
@media (min-width: 768px) {
  .container {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 40px;
    font-size: 16px;
  }
}

/* 桌面端 */
@media (min-width: 1024px) {
  .container {
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    padding: 60px;
    font-size: 18px;
  }
}

实践建议

设定断点(常见值):

   /* 移动端优先断点 */
   @media (min-width: 768px)  { /* 平板&s手机端*/ }
   @media (min-width: 1024px) { /* 小桌面 */ }
   @media (min-width: 1280px) { /* 桌面 */ }
   @media (min-width: 1536px) { /* 大屏 */ }