媒体查询(Media Query)

什么是媒体查询?

媒体查询(Media Query)是CSS3新语法。

  • 使用 @media查询,可以针对不同的媒体类型定义不同的样式
  • @media 可以针对不同的屏幕尺寸设置不同的样式
  • 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面
  • 目前针对很多苹果手机、Android手机,平板等设备都用得到媒体查询

媒体查询语法

  • 用 @media开头 注意@符号
  • mediatype 媒体类型
  • and|not|only:或(表示两个条件同时满足);非(表示不满足后面的条件时);只有(只有在后面的条件下才能执行)
  • media feature:注意,后面的小括号一定要有,表示媒体功能(设备条件)

语法

@media mediatype and|not|only (media feature) {
    CSS-Code;
}

用法

// 1.在css语句中使用
@media screen and (max-width: 400px) {
    // 这里写你在当前条件下想要展示的样式
            .inner {
                height: 100px;
                width: 25%;
                background-color: brown;
            }
        }

// 2.在引入css样式的link语句中写入
// 表示在符合的条件下引入
<link rel="stylesheet" media="screen and (max-width: 400px)" href="mystylesheet.css">

mediatype的值

mediatype将不同的终端设备划分成不同的类型,称为媒体类型

  • all:用于所有设备
  • print:用于打印机和打印预览
  • screen:用于电脑屏幕、平板电脑、智能手机等
  • speech:应用于屏幕阅读发声设备

and|not|only(关键字)

  • 关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。

media feature的值

aspect-ratio

定义输出设备中的页面可见区域宽度与高度的比率

color

定义输出设备每一组彩色原件的个数。如果不是彩色设备,则值等于0

color-index

定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0

device-aspect-ratio

定义输出设备的屏幕可见宽度与高度的比率。

device-height

定义输出设备的屏幕可见高度。

device-width

定义输出设备的屏幕可见宽度。

grid

用来查询输出设备是否使用栅格或点阵。

height

定义输出设备中的页面可见区域高度。

max-aspect-ratio

定义输出设备的屏幕可见宽度与高度的最大比率。

max-color

定义输出设备每一组彩色原件的最大个数。

max-color-index

定义在输出设备的彩色查询表中的最大条目数。

max-device-aspect-ratio

定义输出设备的屏幕可见宽度与高度的最大比率。

max-device-height

定义输出设备的屏幕可见的最大高度。

max-device-width

定义输出设备的屏幕最大可见宽度。

max-height

定义输出设备中的页面最大可见区域高度。

max-monochrome

定义在一个单色框架缓冲区中每像素包含的最大单色原件个数。

max-resolution

定义设备的最大分辨率。

max-width

定义输出设备中的页面最大可见区域宽度。

min-aspect-ratio

定义输出设备中的页面可见区域宽度与高度的最小比率。

min-color

定义输出设备每一组彩色原件的最小个数。

min-color-index

定义在输出设备的彩色查询表中的最小条目数。

min-device-aspect-ratio

定义输出设备的屏幕可见宽度与高度的最小比率。

min-device-width

定义输出设备的屏幕最小可见宽度。

min-device-height

定义输出设备的屏幕的最小可见高度。

min-height

定义输出设备中的页面最小可见区域高度。

min-monochrome

定义在一个单色框架缓冲区中每像素包含的最小单色原件个数

min-resolution

定义设备的最小分辨率。

min-width

定义输出设备中的页面最小可见区域宽度。

monochrome

定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0

orientation

定义输出设备中的页面可见区域高度是否大于或等于宽度。

resolution

定义设备的分辨率。如:96dpi, 300dpi, 118dpcm

scan

定义电视类设备的扫描工序。

width

定义输出设备中的页面可见区域宽度。

媒体查询书写规则

  • 为了防止混乱,媒体查询我们要按照从小到大或者从大到小的顺序来写,但是我们最喜欢的还是从小到大来写,这样代码更简洁
  • 利用媒体查询实现不同屏幕适配不同样式,发现规律可简写为判断
  • 其原理是利用后面会层叠前面的样式

注意:

  • 在移动端开发中我们必须掌握媒体查询+rem实现元素动态大小变化