@media 媒体查询是响应式设计的核心工具,允许根据设备特性(如屏幕宽度、高度、方向等)应用不同的 CSS 样式。
一、基本语法
css
@media media-type and (media-feature) {
/* 目标样式规则 */
}
-
媒体类型(可选):
-
all
(默认):所有设备 -
screen
:屏幕设备 -
print
:打印预览 -
speech
:屏幕阅读器
-
-
逻辑运算符:
-
and
:同时满足多个条件 -
,
(逗号):满足任意条件 -
not
:排除条件 -
only
:防止旧浏览器解析错误
-
二、常用媒体特性(Media Features)
1.宽度/高度:
css
/* 最大宽度 */
@media (max-width: 768px) { ... }
/* 最小宽度 */
@media (min-width: 1200px) { ... }
/* 区间范围 */
@media (min-width: 576px) and (max-width: 992px) { ... }
2.设备方向:
css
@media (orientation: portrait) { ... } /* 竖屏 */
@media (orientation: landscape) { ... } /* 横屏 */
3.像素密度:
css
@media (min-resolution: 2dppx) { ... } /* 视网膜屏 */
4.颜色设置:
css
@media (prefers-color-scheme: dark) { ... } /* 深色模式 */
三、HTML 引入方式
1.CSS 文件内嵌:
css
@media screen and (max-width: 600px) {
.container { padding: 10px; }
}
2.<link>
标签引入:
css
<link rel="stylesheet" media="(min-width: 800px)" href="desktop.css">
四、实用示例
css
/* 移动端优先:默认小屏样式 */
.container { width: 100%; }
/* 平板样式 */
@media (min-width: 768px) {
.container { width: 750px; margin: 0 auto; }
}
/* 桌面样式 */
@media (min-width: 1200px) {
.container { width: 1170px; }
}
/* 深色模式适配 */
@media (prefers-color-scheme: dark) {
body { background: #121212; color: #f0f0f0; }
}
五、API 文档摘要
特性 | 描述 | 值类型 |
---|---|---|
width /height |
视口尺寸 | 长度(px) |
aspect-ratio |
宽高比(宽度/高度) | 比例(16/9) |
resolution |
像素密度 | dpi/dppx |
hover |
是否支持悬停 | hover /none |
pointer |
主指针设备精度 | fine /coarse |
六、最佳实践总结
-
移动优先原则 :先写移动端样式,再通过
min-width
逐步增强 -
断点选择:常用断点参考:576px(手机)、768px(平板)、992px(小桌面)、1200px(大桌面)
-
性能优化:
-
避免在媒体查询中使用高开销属性(如
box-shadow
) -
使用
em
代替px
提高可访问性
-
-
调试工具:Chrome DevTools 设备模式可模拟各种屏幕尺寸

提示:Bootstrap 等框架的响应式系统正是基于媒体查询实现,开发者可自定义断点参数。