媒体查询
大约 2 分钟
媒体查询
@media 语法
@media 可以直接写在 CSS 样式中,或者可以针对不同的媒体设备,从外部链入不同的 stylesheets(外部样式表)。接下来,一起看下两种情况的使用语法:
1. 直接写在 CSS 样式中
定义语法如下:
@media mediatype and|not|only (media feature) {
CSS-Code;
}
一个完整的媒体查询由以下五部分组成:
- 必须是以
@media开头 。 - 使用
mediatype指定媒体(设备)类型 。 - 使用
and | not | only逻辑操作符构建复杂的媒体查询 。 - 使用
media feature指定媒体特性 。 - CSS-Code 位置是要设置的 CSS 样式。
mediatype (媒体类型)取值范围如下:
| 值 | 描述 |
|---|---|
| all | 适用于所有设备 |
| 用于打印机和打印预览 | |
| screen | 用于电脑屏幕,平板电脑,智能手机等 |
| speech | 用于屏幕阅读器等发声设备 |
| 值 | 描述 |
|---|---|
| and | 用于将多个媒体查询规则组合成单条媒体查询,当每个查询规则都为真时则该条媒体查询为真 |
| not | 用来排除某种设备 |
| only | 用以指定某特定媒体设备 |
2. 针对不同的媒体设备,从外部链入不同的 stylesheets(外部样式表)
用 media 属性为 <link> 指定特定的媒体类型。定义语法如下:
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystyle.css">
其中,mediatype、逻辑操作符、media feature 的取值与第一种直接写在 CSS 样式中的取值相同,这里不再进行赘述。
注意
二者区别在于,第一种写在 CSS 样式中是当条件成立后,执行 CSS Code , 第二种则是条件成立后,加载对应的外部样式表。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
@media screen and (max-width: 500px) {
body {
background-color: red;
}
}
@media screen and (min-width: 800px) {
body {
background-color: green;
}
}
@media screen and (min-width: 1024px) {
body {
background-color: blue;
}
}
</style>
</head>
<body></body>
</html>
上述代码做了如下操作:
- 定义媒体查询规则,当设备类型为
screen并且设备中的页面最大可见区域宽度为500px的时候,页面背景颜色为红色。 - 定义媒体查询规则,当设备类型为
screen并且设备中的页面最小可见区域宽度为800px的时候,页面背景颜色为绿色。 - 定义媒体查询规则,当设备类型为
screen并且设备中的页面最小可见区域宽度为1024px的时候,页面背景颜色为蓝色。
