媒体查询(Media Query)是CSS3新语法。
- 使用
@media
查询,可以针对不同的媒体类型定义不同的样式 @media
可以针对不同的屏幕尺寸设置不同的样式- 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面
- 目前针对很多苹果手机、Android手机,平板等设备都用得到多媒体查询
语法如下:
@media mediatype and|not|only(media feature){
CSS-code
}
1
2
3
2
3
- 用
@media
开头 注意@
符号 mediatype
媒体类型- 关键字
and
not
only
media feature
媒体特性 必须有小括号包含
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/* 这句话的意思就是: 在我们屏幕上 并且 最大的宽度是 800像素 设置我们想要的样式 */
/* max-width 小于等于800 */
/* 媒体查询可以根据不同的屏幕尺寸在改变不同的样式 */
@media screen and (max-width: 800px) {
body {
background-color: pink;
}
}
@media screen and (max-width: 500px) {
body {
background-color: purple;
}
}
</style>
</head>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上面代码的意思是在我们屏幕上页面处于500px-800px
之间,页面背景颜色显示为 pink
色。页面小于500px
,背景颜色显示为 purple
色
# 1. mediatype 媒体类型
将不同的终端设备划分成不同的类型,称为媒体类型
值 | 解释说明 |
---|---|
all | 用于所有设备 |
用于打印机和打印预览 | |
screen | 用于电脑屏幕、平板电脑、智能手机等 |
# 2. 关键字
关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。
and
:可以将多个媒体特性连接到一起,相当于“且”的意思。not
:排除某个媒体类型,相当于“非”的意思,可以省略。only
:指定某个特定的媒体类型,可以省略。
# 3. 媒体特性
每种媒体类型都具体各自不同的特性,根据不同媒体类型的媒体特性设置不同的展示风格。我们暂且了解三个。注意他们要加小括号包含。
值 | 解释 |
---|---|
width | 定义输出设备中页面可见区域的宽度 |
min-width | 定义输出设备中页面最小可见区域宽度 |
max-width | 定义输出设备中页面最大可见区域宽度 |
注意:
- 媒体查询我们要按照从小到大或者从大到小的顺序来写,但是我们最喜欢的还是从小到大来写,这样代码更简洁
- 最大值
max-width
和最小值min-width
都是包含等于的 - 当屏幕小于
540px
,页面的背景颜色变为蓝色(x<=539
) - 当屏幕大于等于
540px
,并且小于等于960px
,页面的背景颜色变为绿色(540=<x<=969
) - 当屏幕大于等于
970px
时,背景颜色为红色(x>=970
) screen
还有and
必须带上不能省略的- 我们的数字后面必须跟单位
970px
,这个px
不能省略的
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
/* 1. 媒体查询一般按照从大到小或者 从小到大的顺序来 */
/* 2. max小于等于 小于540px 页面的背景颜色变为蓝色 */
@media screen and (max-width: 539px) {
body {
background-color: blue;
}
}
/* 3. 540 ~ 970 我们的页面颜色改为 绿色 */
/* @media screen and (min-width: 540px) and (max-width: 969px) {
body {
background-color: green;
}
} */
/*3. 更简洁的写法,最小值是540px,也就是大于等于540px*/
@media screen and (min-width: 540px) {
body {
background-color: green;
}
}
/* 4. 大于等于970 我们页面的颜色改为 红色 */
@media screen and (min-width: 970px) {
body {
background-color: red;
}
}
</style>
</head>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 4. 引入资源
- 当样式比较繁多的时候,我们可以针对不同的媒体使用不同
stylesheets
(样式表)。 - 原理,就是直接在
link
中判断设备的尺寸,然后引用不同的css
文件。
语法:
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">
1
示例:
<link rel="stylesheet" href="styleA.css" media="screen and (min-width: 400px)">
1
Tip
引入资源就是针对于不同的屏幕尺寸,调用不同的css文件