| 类型 | 描述 |
|---|---|
| all | 适用于所有设备 |
| 适用于在打印预览模式下在屏幕上查看的分页材料和文档 | |
| screen | 主要用于屏幕 |
| speech | 主要用于屏幕阅读器 |
@media (any-hover: hover) {
/* 任意的输入装置⽀持悬停 */
}
@media (any-hover: none) {
/* 任意的输入装置不⽀持悬停 */
}@media (hover: hover) {
/* 主输⼊装置⽀持悬停 */
}
@media (hover: none) {
/* 主输⼊装置不⽀持悬停 */
}@media (any-pointer: none) {
/* 不⽀持点击 */
}
@media (any-pointer: coarse) {
/* ⾄少⼀个装置点击不精准 */
}
@media (any-pointer: fine) {
/* 有装置点击很精准 */
}@media (pointer: none) {
/* 主输⼊装置点击不可⽤ */
}
@media (pointer: coarse) {
/* 主输⼊装置点击不精准 */
}
@media (pointer: fine) {
/* 主输⼊装置点击精准 */
}/* 深⾊模式 */
@media (prefers-color-scheme: dark) {}
/* 浅⾊模式 */
@media (prefers-color-scheme: light) {}@media (prefers-contrast: more) {
/* ⽤户喜欢⾼对⽐度 */
}
@media (prefers-contrast: less) {
/* ⽤户喜欢对⽐度 */
}@media (prefers-reduced-motion: reduce) {
/* ⽤户希望减弱动画 */
}、 not、 and 和 only 可用于联合构造复杂的媒体查询or
可以通过用 分隔多个媒体查询,将它们组合为一个规则,
条件有重合部分时,范围更大的条件要写在范围更小条件之前
@media screen and (width >= 640px) and (width <= 768px) {
/* 满足屏幕 且 宽度在640-768之间,包括等于 */
}
@media not screen and (width >= 640px) and (width <= 768px) {
/* 不是屏幕 或 宽度不在640-768之间,不包括等于 */
}@import 'landscape.css' screen and (orientation: landscape);HTML 和 js 中的媒体查询<link rel="stylesheet" href="default.css">
<link rel="stylesheet" href="mobile.css" media="(max-width: 480px)">
<style media='print'></style><picture>
<source srcset="rect.png" media="(min-width: 480px)">
<img src="square.png">
</picture>if (matchMedia('(max-width: 480px)').matches) {
// js here
}在 应用中,如果参数是 JS 声明(也就是出现了冒号),外面需要有个括号,否则语法不正确, 也就是 CSS 是无效的matchMedia('max-width:480px')