CSS Handbook · 媒体查询

第五章 / 5.1 媒体查询基础与断点设计

第五章 · 5.1 节

媒体查询基础与断点设计


媒体查询让 CSS 具备了"感知环境"的能力——根据视口宽度、设备方向、用户的系统偏好等条件,有选择地应用一组样式规则,是响应式设计的基石。

基本语法

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

条件成立时,花括号内的规则才会生效;条件基于"媒体特性"(media feature),最常用的是 width / min-width / max-width

移动优先 vs 桌面优先

两种截然不同的书写策略,决定了默认样式面向的是最小屏幕还是最大屏幕:

策略默认样式面向媒体查询用
移动优先最小屏幕(无查询包裹)min-width(逐步增强)
桌面优先最大屏幕(无查询包裹)max-width(逐步降级)
/* 移动优先:默认单列,宽屏时改双列 */
.grid { grid-template-columns: 1fr; }

@media (min-width: 768px) {
  .grid { grid-template-columns: 1fr 1fr; }
}
推荐移动优先是当下的主流实践:默认样式最简单、覆盖设备最广,后续用 min-width 逐步"增强"到大屏布局,心智负担更低,也更契合渐进增强的设计哲学。

断点该怎么定

与其死记某个像素值,不如记住一条原则:断点应该由内容决定,而不是由设备型号决定——当你的布局在某个宽度开始"看起来不对劲"(文字过长一行、卡片过窄挤压),那就是断点该出现的地方。以下是常见的参考区间,供起步时使用:

区间典型设备常见取值
超小屏手机竖屏< 480px
小屏手机横屏 / 小平板≥ 480px
中屏平板≥ 768px
大屏笔记本≥ 1024px
超大屏桌面显示器≥ 1280px

组合多个条件

and 连接多个特性,实现"同时满足";用逗号分隔多组查询,实现"任一满足"(相当于逻辑或)。

/* 宽度在 600px 到 900px 之间,且是横屏 */
@media (min-width: 600px) and (max-width: 900px) and (orientation: landscape) {
  ...
}

/* 手机 或 打印场景 */
@media (max-width: 480px), print {
  ...
}

现代 CSS 还支持区间语法,等价于上面的写法但更接近数学表达:@media (600px <= width <= 900px)