## 一、什么是媒体查询?
* 媒体指的就是各种设备 (移动设备, PC设备)
* 查询指的是要检测属于哪种设备
媒体查询:通过查询当前属于哪种设备, 让网页能够在不同的设备下正常的预览。媒体查询是响应式网页设计的关键部分,因为它允许您根据视口的大小来创建不同的布局。
## 二、媒体查询语法
~~~css
@media mediatype and|not|only|, (media feature) {
/* css-code; */
}
~~~
* `and` 可以将多个媒体特性链接到一块,相当与且
* `not` 排除某个媒体特性,相当于非,可以省略
* `only` 指定某个特定的媒体类型,可以省略
* `,` 设备列表,相当于或
你也可以针对不同的媒体使用不同`stylesheets`:
~~~html
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="...">
~~~
## 三、媒体类型
你可以指定的媒体类型可能是:
* `all`:用于所有设备
* `print`:用于打印机和打印预览
* `screen`:用于电脑屏幕,平板电脑,智能手机等
* `speech`:用于屏幕阅读器等发声设备
如果是打印页面,则以下媒体查询将仅将正文设置为 12pt。在浏览器中加载页面时,它将不适用。
~~~css
@media print {
body {
font-size: 12pt;
}
}
~~~
## 四、媒体功能
指定类型后,你可以使用规则定义媒体功能。
| 媒体特性 | 值 | 可用媒体类型 | 接受 min / max | 简介 |
| :-: | :-: | :-: | :-: | :-: |
| height | length | 视觉屏幕/触摸设备 | yes | 定义输出设备中的页面可见区域高度 |
| width | length | 视觉屏幕/触摸设备 | yes | 定义输出设备中的页面可见区域宽度 |
| device-height | length | 视觉屏幕/触摸设备 | yes | 定义输出设备的屏幕可见高度 |
| device-width | length | 视觉屏幕/触摸设备 | yes | 定义输出设备的屏幕可见宽度 |
| orientation | portrait / landscape | 位图介质类型 | no | 定义输出设备中的页面可见区域高度是否大于或等于宽度 |
| aspect-ratio | ratio | 位图介质类型 | yes | 定义输出设备中的页面可见区域宽度与高度的比率 |
| device-aspect-ratio | ratio | 位图介质类型 | yes | 定义设备宽度和高度的比率,即设备屏幕长宽比。如常见的显示器比率:4/3,16/9,16/10 |
| color | integer | 视觉媒体 | yes | 定义输出设备每一组彩色原件的个数。如果不是彩色设备,则值等于 0 |
| color-index | integer | 视觉媒体 | yes | 定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于 0 |
| monochrome | integer | 视觉媒体 | yes | 定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0 |
| resolutation | resolution | 位图介质类型 | yes | 定义设备的分辨率。如:96dpi, 300dpi, 118dpcm |
| scan | progressive / interlace | 电视类 | no | 定义电视类设备的扫描工序 |
| grid | integer | 栅格设备 | no | 用来查询输出设备是否使用栅格或点阵 |
- 第一章:移动开发入门
- 第一节:概述
- 第二节:基础概念
- 第一课时:像素
- 第二课时:视口
- 第二章:Flex 布局
- 第一节:概述
- 第二节:容器属性
- 第一课时:flex-direction 属性
- 第二课时:flex-wrap 属性
- 第三课时:flex-flow 属性
- 第四课时:justify-content 属性
- 第五课时:align-items 属性
- 第六课时:align-content 属性
- 第三节:项目属性
- 第一课时:order 属性
- 第二课时:flex-grow 属性
- 第三课时:flex-shrink 属性
- 第四课时:flex-basis 属性
- 第五课时:flex 属性
- 第六课时:align-self 属性
- 第四节:Flex 实例
- 第一课时:常见页面布局
- 第三章:响应式布局
- 第一节:概述
- 第二节:媒体查询
- 第一课时:概述
- 第二课时:响应式设计
- 第三节:栅格系统
- 第一课时:概述
- 第二课时:案例分析
- 第三课时:Bootstrap 简介
- 第四节:响应式案例
- 第一课时:三星首页
- 第四章:移动端适配
- 第五章:移动端事件
- 第一节:概述
- 第二节:touch 事件
- 第三节:触摸事件对象
- 第四节:其他事件
- 第五节:移动端幻灯片
- 第六章:移动端常见问题
- 第一节:浏览器兼容性
- 第二节:移动端动画
- 第三节:300ms 延迟
- 第四节:文字溢出省略
- 第五节:水平居中和垂直居中
- 第七章:项目案例
- 第一节:美团外卖
- 第一课时:首页
- 第二课时:订单页面
- 第三课时:我的页面
- 第四课时:详情页面
- 第五课时:购物车页