@media
媒体查询是响应式设计的核心工具,允许根据设备特性(如屏幕宽度、高度、方向等)应用不同的 CSS 样式。
一、基本语法
@media media-type and (media-feature) {/* 目标样式规则 */
}
媒体类型(可选):
all
(默认):所有设备screen
:屏幕设备print
:打印预览speech
:屏幕阅读器
逻辑运算符:
and
:同时满足多个条件,
(逗号):满足任意条件not
:排除条件only
:防止旧浏览器解析错误
二、常用媒体特性(Media Features)
1.宽度/高度:
/* 最大宽度 */
@media (max-width: 768px) { ... } /* 最小宽度 */
@media (min-width: 1200px) { ... }/* 区间范围 */
@media (min-width: 576px) and (max-width: 992px) { ... }
2.设备方向:
@media (orientation: portrait) { ... } /* 竖屏 */
@media (orientation: landscape) { ... } /* 横屏 */
3.像素密度:
@media (min-resolution: 2dppx) { ... } /* 视网膜屏 */
4.颜色设置:
@media (prefers-color-scheme: dark) { ... } /* 深色模式 */
三、HTML 引入方式
1.CSS 文件内嵌:
@media screen and (max-width: 600px) {.container { padding: 10px; }
}
2.<link>
标签引入:
<link rel="stylesheet" media="(min-width: 800px)" href="desktop.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 等框架的响应式系统正是基于媒体查询实现,开发者可自定义断点参数。