概念:媒体查询
媒体查询是 CSS3 的功能,允许根据设备特性(如视口宽度、高度、方向等)有条件地应用样式,实现响应式设计。
解决的问题:针对不同设备应用不同样式
核心命题
- 语法结构
@media media-type and (media-feature) { ... }- 媒体类型
screen- 屏幕设备print- 打印设备speech- 屏幕阅读器all- 所有设备
- 媒体特性
width/height- 视口宽高min-width/max-width- 最小/最大视口宽度orientation- 方向(portrait/landscape)aspect-ratio- 宽高比
运行机制
flowchart TB A[CSS解析] --> B{@media 查询?} B -->|匹配| C[应用样式] B -->|不匹配| D[跳过] C --> E[渲染]
常见用法
1. 断点媒体查询
/* 移动端 */
@media (max-width: 575px) {
.container { width: 100%; }
}
/* 平板 */
@media (min-width: 576px) and (max-width: 991px) {
.container { width: 540px; }
}
/* 桌面 */
@media (min-width: 992px) {
.container { width: 960px; }
}2. 方向检测
/* 横屏 */
@media (orientation: landscape) {
.sidebar { display: none; }
}
/* 竖屏 */
@media (orientation: portrait) {
.sidebar { display: block; }
}3. 视网膜屏幕
/* DPR > 2 */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
.logo { background-image: url(logo@2x.png); }
}4. 导入语句方式
<!-- 在 HTML 中导入 -->
<link rel="stylesheet" media="(max-width: 768px)" href="mobile.css">与响应式布局的关系
- 媒体查询是响应式布局的核心技术
- 响应式布局 = 弹性布局 + 弹性单位 + 媒体查询
知识图谱
参考延伸
- MDN: Using media queries
- CSS Tricks: Media Queries for Standard Devices