类型 | 描述 |
---|---|
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')