CSS媒体查询的用法

媒体查询:根据设备显示器的特性(如视窗宽度、屏幕宽度、设备方向等)来设定不同的CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。

一、媒体查询的使用方法

1、外链式:在head标签的内部使用 link 标签引入外部css文件

<head>
  <link rel="stylesheet" media="(min-width: 1200px)" href="test.css" />
</head>

min-width: 1200px 表示当视窗宽度大于等于1200px时,该样式生效。

2、内部方式:使用内部样式表,写在 style 标签里面

<style>
@media (max-width: 1200px) {
  .test{
    width: 800px;
  }
}
</style>

max-width: 1200px 表示当视窗宽度小于等于1200px时,该样式生效。

二、媒体查询的语法

<style>
@media mediaType and (mediaFeature ) {
   选择器 {
     属性名:属性值
   }
}
// 多个媒体特性
@media mediaType and (mediaFeature ) and (mediaFeature ) {
   选择器 {
     属性名:属性值
   }
}
</style>

1. mediaType - 媒体类型(默认all):

  • all: 所有的多媒体设备
  • print: 打印机或打印预览
  • screen:电脑屏幕、平板电脑、智能手机等
  • speech:屏幕阅读器等发声设备

示例:

@media screen {
  .test{
    background-color: blue;
  }
}

2. mediaFeature - 媒体特性表达式

常用媒体特性:

  • width:视窗宽度
  • height::视窗高度
  • max-width:最大视窗宽度
  • min-width:最小视窗宽度
  • device-width:设备屏幕宽度
  • max-device-width:最大设备屏幕宽度
  • min-device-width:最小设备屏幕宽度
  • orientation:设备方向(landscape - 横屏;portrait - 竖屏)

示例:

@media (max-width:1200px) {
  .test{
    background-color: pink;
  }
}

上面表示:当视窗宽度小于等于1200px时,背景色为粉色。

3. 关键字

1)and

多个媒体特性,使用and关键字。

@media screen and (min-width: 600px) and (max-width: 900px) {
  .test {
    background-color: red;
  }
}

上面表示:当视窗宽度在600px~900px之间时,背景色为红色。

2)not

not关键字用来排除符合表达式的设备,表示对后面的表达式执行取反操作。

// 非打印设备,该样式生效
@media not print { 样式代码 }
// 在除打印设备和视窗宽度小于1200px的所有设备中,该样式生效
@media not print and (max-width: 1200px) { 样式代码 }

3)only

only关键字表示仅在媒体查询匹配成功时样式生效

// 只在screen设备生效
@media only screen { 样式代码 }

4. 逗号分隔列表

当使用媒体查询的逗号分隔列表时,如果列表中的任一媒体查询为true,样式都会生效(相当于“或”逻辑)。在逗号分隔列表中的每个媒体查询都被作为独立查询对待,运用到一个媒体查询上的任何操作符都不影响其它的。

@media print and (max-width:480px), screen and (min-width:960px) { 样式代码 }

上面表示:在宽度小于或等于480px的打印预览上或者视窗宽度大于等于960px的screen设备上,该样式生效。

记录于2023-08-23。